Вы какие-то странные слова пишете. Патент нельзя украсть - его можно нарушить или зарегистрировать обманным путем. А вот «украсть» его нельзя. Это во-первых.
Во-вторых, санкции были введены под предлогом того, что хуавей передавала информации китайским властям. То есть не за нарушение патента, а по подозрению в шпионаже.
В-третьих, кто бы говорил про рейдерство после заходов на принудительную продажу тиктока американским компаниям.
Если они такие бесполезные и дорогие, что же вы их не уволите чтобы нанять полезных и дешёвых? Или не все так однозначно, уволить вы их уволите а вот новых не набрать, все многие сотни тыщ хотят - а те что не требуют много денег такой лютый ад наворотят, что потом не разобрать?
Ну так это такой рынок, закон спроса на рабочую силу и ее предложения. Вы забираете цены на жилье, ИТшник задирают цену на свою работу чтобы покупать жилье.
Редми "не знаю модель" не находит. У меня Moto Edge Plus с 10 андроидом нифига не находит.
ЕМНИП там была подлянка у квалкома - если подсунуть невалидные данные, девайс затирал уже имеющиеся данные и начинал инициализацию с начала. Поэтому если у вас есть какой-нибудь оффлайновый навигатор на устройстве, попробуйте ради интереса оторвать ему wifi и передачу данных по сотовой сети, и в принципе в течение минут 5-8 оно должно разогреться.
Там у каждого производителя свои собственные форматы и свои собственные сервера, с которых девайсы запрашивают альманахи в своих собственных форматах. Производители чипов в принципе держат сервера которые могут использовать условно все устройства, но производитель устройства может например задать свой набор серверов (и соответственно должен организовать эти сервера и непрерывное обновление данных на них)
Зекер хотел выползти на рынок европы, поэтому их старания понятны. Вот только китайские производители почему-то уверены в том, что обещания про "право честную конкуренцию для всех" от "лидеров свободного мира" применимы к ним (хотя честно конкурировать могут только представителя цветущего сада, а остальные жолжны быть счастливы поставляя им ресурсы), и упорно стараются списать прецеденты с Huawei, ZTE и другими компаниями на "товарищ POTUS не разобрался, это просто случайная ошибка" (нет, не ошибка, не шпионаж и не случайность - это такая зачистка конкурентного поля)
И если во время войны с телеграмом страдали все, в том числе сбер, ВК, Яндекс и другие большие компании (на самом деле почти все) - а сейчас стоны раздаются только от эндюзеров.
Так что РКН учится и блокирует аккуратней чем раньше
Есть такие слова как непредвзятость и объективность. В компаниях, где я работал и работаю, тысячи сотрудников в VPN. И у меня у одного знакомого чей ВПН я админю несколько десятков сотрудников сидят на VPN. И у них все работает, без каких-либо проблем.
Поэтому, если отбросить эмоции и истерики, то РКН учится и постепенно перестает устраивать ковровые бомбометания по площадям.
Вопрос о нужности ТСПУ (или как минимум нужности той части их функциональности, которая предназначена для блокировки внешних угроз и атак) для разумных людей уже не стоит - массированная кибератака со стороны иностранных держав является как бы уже даже не "возможным" а "ожидаемым" событием. После пейджергейта это не осознали только эльфы-инфантилы.
Ну вот сами и ответили. Если клиент и сервер в РФ - все замечательно работает. Да, бывали глюки - но подозреваю скорей из-за самодеятельности провайдеров которые пускали трафик РФ-РФ через внешние каналы.
И это даже хуже. В notify лок взяли, начали цикл, сняли лок внутри цикла, ушли в колобок. И тут кто то вызывает unsubscribe параллельно, unsubscribe весь под локом, лок взят. Unsubscribe ачинает ожидать завершения использования элемента через счётчик ссылок. Под локом, да. В notify завершается обработка этой подписки и пытается взять лок внутри цикла перед уменьшением счётчика ссылок. Но этот лок удерживается unsubscribe. Всё, повисли.
Цепочка l.unlock(); s.m_callback() неатомарна. Я вам больше скажу, сам вызов s.m_callback() описывается в несколько инструкций, после любой из которых тред может быть приостановлен и при этом уже разблокирован, но код внутри m_callback еще не начал выполняться.
Поэтому unsubscribe() может просунуться между этими двумя вызовами и вы ВНЕЗАПНО! (нет) получите в точности ту же проблему.
Так что самым правильным будет сделать две реализации - одна синхронная, под глобальным локом, в которой unsubscribe / subscribe не завершатся пока не завершатся все notify() - с которой вы и начали (что и правильно), и вторая более оптимистичная, которая реализует модель "после вызова unsubscribe новые вызовы notify уже не попадут в обработчик, но уже сделанные незавершенные вызовы могут привести к его вызову" (ситуация когда функтор, как вы его назвали, не удаляется).
А половинчатые решения со скрытым race condition как в вашем примере... Не надо их притаскивать. Их очень трудно отдебажить но на них легко подскользнуться.
Ваш эвент должен содержать только данные которыми владеет только сам эвент и которые он освободит в момент своего удаления - то есть конструктор эвента должен клонировать данные, и деструктор эвента должен высвобождать данные, либо ссылки на ресурсы которые не будут удалены за всё время существования эвента.
А если вы используете shared resource - то необходимо использовать защиту ресурса (семафором, менеджером ресурсов, умным указателем - любым удобным вам инструментом) от удаления - а может и от модификации - на все то время, пока на ресурс есть ссылки.
Пихать же указатель в асинхронную обработку и освобождать его, не проверив пока таски не закончились - это безумие и прямой путь к сегфолту.
А почему просто не с клонировать вектор подписчиков и итерироваться по нему? Тогда лок вывешивается только на время клонирования и проблема решена, все подписчики на момент вызова получат уведомление. Нет ничего страшного в клонировании вектора
Насиловать стюардессу пора бы перестать уже давно, нужен новый блок (по сути, новый двигатель). Является ли это "супер технологией" - я, честно говоря, не знаю, но то, что это технология середины нулевых и автовазу она пока недоступна - это 100% факт.
Я тут случайно вспомнил, что например на фокусе 3 были двигатели 2.0/150 (изменяемая фаза + GDI), 1.6/125 (c изменяемой фазой, распределенный впрыск) и третий - двигатель 1.6 / 105 л.с. (без изменения фаз, распределенный впрыск) и момент 150 при 4500. И блоки фордовских моторов 1.6 были одинаковыми.
А если вспомнить, что на вазовской весте 1.6/105 момент 148нм при 4200об/мин - что практически равно фордовскому младшему мотору, то кажется что блок тут вообще ни при чем и ВАЗовский блок вполне себе на уровне.
Потом автовазы которые я видел все построены на одном по сути блоке. У него есть предел
Эмм... То что вы называете "пределом" на самом деле ограничения физики и химии. Всё нынешнее совершенствование это попытка обмануть физику облегчив блок и его движущиеся компоненты (вал, поршни, уйти в алюминий) и обмануть физику и химию наддув смесь (все эти игры с GDI и циклами аткинсона, миллера и т.д.) и сосредоточены не в блоке, а в ГБЦ, топливной аппаратуре и контроллере.
ВАЗовский блок тяжелее чем типичный "современный" (тяжелее поршни, коленвал, сам блок), но если присмотреться, то отличий там одно - открытый алюминиевый блок с чугунными гильзами у "продвинутых" вместо простого чугуния у "отсталых".
Вы какие-то странные слова пишете. Патент нельзя украсть - его можно нарушить или зарегистрировать обманным путем. А вот «украсть» его нельзя. Это во-первых.
Во-вторых, санкции были введены под предлогом того, что хуавей передавала информации китайским властям. То есть не за нарушение патента, а по подозрению в шпионаже.
В-третьих, кто бы говорил про рейдерство после заходов на принудительную продажу тиктока американским компаниям.
Если они такие бесполезные и дорогие, что же вы их не уволите чтобы нанять полезных и дешёвых? Или не все так однозначно, уволить вы их уволите а вот новых не набрать, все многие сотни тыщ хотят - а те что не требуют много денег такой лютый ад наворотят, что потом не разобрать?
Ну так это такой рынок, закон спроса на рабочую силу и ее предложения. Вы забираете цены на жилье, ИТшник задирают цену на свою работу чтобы покупать жилье.
Вот как раз int32 закончится относительно скоро. А uint32 протянет до конца века почти, да
Этика крайне растяжимое понятие. Вы подключились к чужому серверу, но не сделали ничего плохого. И пофиксили им проблему. Это этично или нет? :-)
Да.
ЕМНИП там была подлянка у квалкома - если подсунуть невалидные данные, девайс затирал уже имеющиеся данные и начинал инициализацию с начала. Поэтому если у вас есть какой-нибудь оффлайновый навигатор на устройстве, попробуйте ради интереса оторвать ему wifi и передачу данных по сотовой сети, и в принципе в течение минут 5-8 оно должно разогреться.
Там у каждого производителя свои собственные форматы и свои собственные сервера, с которых девайсы запрашивают альманахи в своих собственных форматах. Производители чипов в принципе держат сервера которые могут использовать условно все устройства, но производитель устройства может например задать свой набор серверов (и соответственно должен организовать эти сервера и непрерывное обновление данных на них)
Зекер хотел выползти на рынок европы, поэтому их старания понятны. Вот только китайские производители почему-то уверены в том, что обещания про "право честную конкуренцию для всех" от "лидеров свободного мира" применимы к ним (хотя честно конкурировать могут только представителя цветущего сада, а остальные жолжны быть счастливы поставляя им ресурсы), и упорно стараются списать прецеденты с Huawei, ZTE и другими компаниями на "товарищ POTUS не разобрался, это просто случайная ошибка" (нет, не ошибка, не шпионаж и не случайность - это такая зачистка конкурентного поля)
Ну в ВК я уже не работаю.
И если во время войны с телеграмом страдали все, в том числе сбер, ВК, Яндекс и другие большие компании (на самом деле почти все) - а сейчас стоны раздаются только от эндюзеров.
Так что РКН учится и блокирует аккуратней чем раньше
Есть такие слова как непредвзятость и объективность. В компаниях, где я работал и работаю, тысячи сотрудников в VPN. И у меня у одного знакомого чей ВПН я админю несколько десятков сотрудников сидят на VPN. И у них все работает, без каких-либо проблем.
Поэтому, если отбросить эмоции и истерики, то РКН учится и постепенно перестает устраивать ковровые бомбометания по площадям.
Вопрос о нужности ТСПУ (или как минимум нужности той части их функциональности, которая предназначена для блокировки внешних угроз и атак) для разумных людей уже не стоит - массированная кибератака со стороны иностранных держав является как бы уже даже не "возможным" а "ожидаемым" событием. После пейджергейта это не осознали только эльфы-инфантилы.
Ну хватит чушь нести. РКН на самом деле работает все более точечно, блокируя именно иностранные сервисы, внутренние они уже научились не аффектить.
Ну вот сами и ответили. Если клиент и сервер в РФ - все замечательно работает. Да, бывали глюки - но подозреваю скорей из-за самодеятельности провайдеров которые пускали трафик РФ-РФ через внешние каналы.
И во время снятого в ожидании лока вызывается второй unsubscribe с теми же параметрами к нам приходит double-free?
И это даже хуже. В notify лок взяли, начали цикл, сняли лок внутри цикла, ушли в колобок. И тут кто то вызывает unsubscribe параллельно, unsubscribe весь под локом, лок взят. Unsubscribe ачинает ожидать завершения использования элемента через счётчик ссылок. Под локом, да. В notify завершается обработка этой подписки и пытается взять лок внутри цикла перед уменьшением счётчика ссылок. Но этот лок удерживается unsubscribe. Всё, повисли.
Так у вас эта проблема точно так же есть.
Цепочка l.unlock(); s.m_callback() неатомарна. Я вам больше скажу, сам вызов s.m_callback() описывается в несколько инструкций, после любой из которых тред может быть приостановлен и при этом уже разблокирован, но код внутри m_callback еще не начал выполняться.
Поэтому unsubscribe() может просунуться между этими двумя вызовами и вы ВНЕЗАПНО! (нет) получите в точности ту же проблему.
Так что самым правильным будет сделать две реализации - одна синхронная, под глобальным локом, в которой unsubscribe / subscribe не завершатся пока не завершатся все notify() - с которой вы и начали (что и правильно), и вторая более оптимистичная, которая реализует модель "после вызова unsubscribe новые вызовы notify уже не попадут в обработчик, но уже сделанные незавершенные вызовы могут привести к его вызову" (ситуация когда функтор, как вы его назвали, не удаляется).
А половинчатые решения со скрытым race condition как в вашем примере... Не надо их притаскивать. Их очень трудно отдебажить но на них легко подскользнуться.
У вас тут наличествует откровенный мисдизайн.
Ваш эвент должен содержать только данные которыми владеет только сам эвент и которые он освободит в момент своего удаления - то есть конструктор эвента должен клонировать данные, и деструктор эвента должен высвобождать данные, либо ссылки на ресурсы которые не будут удалены за всё время существования эвента.
А если вы используете shared resource - то необходимо использовать защиту ресурса (семафором, менеджером ресурсов, умным указателем - любым удобным вам инструментом) от удаления - а может и от модификации - на все то время, пока на ресурс есть ссылки.
Пихать же указатель в асинхронную обработку и освобождать его, не проверив пока таски не закончились - это безумие и прямой путь к сегфолту.
А почему просто не с клонировать вектор подписчиков и итерироваться по нему? Тогда лок вывешивается только на время клонирования и проблема решена, все подписчики на момент вызова получат уведомление. Нет ничего страшного в клонировании вектора
Я тут случайно вспомнил, что например на фокусе 3 были двигатели 2.0/150 (изменяемая фаза + GDI), 1.6/125 (c изменяемой фазой, распределенный впрыск) и третий - двигатель 1.6 / 105 л.с. (без изменения фаз, распределенный впрыск) и момент 150 при 4500. И блоки фордовских моторов 1.6 были одинаковыми.
А если вспомнить, что на вазовской весте 1.6/105 момент 148нм при 4200об/мин - что практически равно фордовскому младшему мотору, то кажется что блок тут вообще ни при чем и ВАЗовский блок вполне себе на уровне.
ZF, Aisin, Getrag. И огромное множество их клонов и лицензированных ребрендированных вариаций.
Эмм... То что вы называете "пределом" на самом деле ограничения физики и химии. Всё нынешнее совершенствование это попытка обмануть физику облегчив блок и его движущиеся компоненты (вал, поршни, уйти в алюминий) и обмануть физику и химию наддув смесь (все эти игры с GDI и циклами аткинсона, миллера и т.д.) и сосредоточены не в блоке, а в ГБЦ, топливной аппаратуре и контроллере.
ВАЗовский блок тяжелее чем типичный "современный" (тяжелее поршни, коленвал, сам блок), но если присмотреться, то отличий там одно - открытый алюминиевый блок с чугунными гильзами у "продвинутых" вместо простого чугуния у "отсталых".