Довольно категорично, а на чем основываются ваши страхи? Есть прецеденты?
Представим, что кожанным запретили управлять всеми машинами в вашей локации, чё и в этом сеттинге низя сворачивать? А если можно увернуться без существенного ущерба вообще, почему нет то?
Вы вообще в курсе, что ПДД не полны и противоречивы, по определению, а из этого следует свобода выбора действий как минимум в редких кейсах, чё делать будем?
Т.е. повторный ран вернёт, токен который что? Комплетед как при кенселе? Или повторный ран кинет исключение? Это конечно вкусовщина, но все же явный мув для таска как то более идиоматичен. И я так подумал, и вижу что ваш токен без зена, по сути ни чем от стд футуры не отличается, я бы даже ее и возвращал, хотя возможно у вас там есть кэнсел и метод узнать про это. Вот вы писали статью про АПИ, а в этом примере ничего толком не показали т.к все декларации нужно самому додумывать, так не годится конечно.
А с зеном на вашей футуре будут точно такие же проблемы за которые вы ругаете кутешные футуры. Вам по сути нужно превратить вашу футуру назад в таск, и тогда уже можно через имеющийся АПИ навесить новых зенов, только из вашего АПИ непонятно где же именно будут работать новые зены, там есть 2 варианта если не успели до окончания первой футуры то тут все ясно на том экзекуторе который был при 2 ране, а если успели то не ясно, на первом экзекуторе или на 2.
Вообщем, опять же вкусовщина, но я вижу ровно 0 принципиальных отличий вашего дизайна от пары стд асинк/футура (ну разве что у вас ещё кэнсел завезли). Другими словами если я могу лэйзи собрать таск, то что мне мешает также лэйзи собрать все лямбды в одну а потом ее родную и отправить в асинк получить футуру и также ждать на ней? Даже больше, согласно вашим же рекомендациям именно так и нужно сделать, т.к. это добавляет ещё больше ортогональности, комбинировать лямбды может понадобиться и в отдельности от асинхронщины. А кэнселейшен токен (если нужен) можно через параметр лямбды передавать и потом через тупл вместе с рещультатам всем последующим лямбдам в цепочке.
Короче я про то что связывать чейнинг лямбд с асинхронщиной да ещё и мешать туда культю в одном флаконе как то противоречит вашим же заветам по АПИ. Но хочу выразить благодарность за примеры, и ссылку на ниблера, у меня просто эта боль есть и мне "скоро" это все рефакторить, теперь я вижу как это красиво сделать, и я тоже на культе сижу это 3 ортогональное измерение для АПИ, которое не нужно подмешивать в таски т.к. у нас не везде разрешено в АПИ ссылаться на кутэ, а в некоторых либах даже и использовать ее низя.
А что делать в с вашим АПИ если лэйзи инициализация по какой то причине не вариант? Ну или более конкретно нужно поднасыпать зенов когда лягушку уже варят или уже сварили? А ещё точнее ваш АПИ нарушает ваше 1 правило, таск ран я могу вызвать несколько раз, могу добавить зенов после ран. По вашей лэйзи логике ран должен быть у пула и консумить таск и возвращать какой то токен на котором можно только ждать или спросить о готовности.
Как эксперт по плюсам хочу обозначить несколько неточностей с вашей стороны
С++ был спроектирован в эпоху однопоточности и с учётом этого важного контекста он обсалютно прекрасно поддерживает композицию. Дефолтный выбор для реализации композиции это родительский объект владеет дочерним по значению. Ассоциативная ссылка как и у вас это вик поинтер, агрегатная ссылка это забыл точное название из буста, смарт поинтер на объект со внутренним счётчиком ссылок. Как так, спросите вы, композит же это значение как создать вик поинтер на значение? Да очень просто рутовый объект должен реализовывать шаред фром зис, а все дочерние объекты используют его счётчик при создании ассоциативной ссылки. Это та редко используемая специализация конструктора стд шаред поинтер о которой мало кто знает и совсем мало кто понимает как это работает и зачем это нужно. Вот именно для этого оно и нужно.
У вас есть единственное разумное возражение - полиморфизм. Да в таком случае композит это шаред поинтер, а ассоциативная ссылка на него вик поинтер, но есть альтернатива известная ещё с античных(си) времён - полиморфизм на вариантах или полиморфизм в функциональном стиле. Это когда рут объект имеет по значению правильно выравненный достаточного (для хранения любого возможного полиморфного типа) размера массив байт + дескриминатор. Полиморфные объекты размещаются внутри этого массива через инплэйс нью.
Глубокое копирование при использовании значений для агрегатов идёт почти из коробки, да ассоциативные ссылки внутри одного дерева объектов нужно поправить руками в конструкторе/присваивании после копирования.
Что я хочу сказать, с++ позволяет сделать все по уму почти из коробки, да как это делать правильно и не ошибаться понимают мало людей, но ваше заявление что в плюсах это всегда русская рулетка основано на недостаточных знаниях о с++.
Да, многопоточность в плюсах это отдельная боль и все становится намного сложнее когда объекты используются в разных потоках, тут я соглашусь что без специальных смарт поинтеров могут возникать не иллюзорные проблемы удаления объектов не в тех потоках где надо.
Общая очередь это деталь реализации тред пула, проблема у вас в языке, чтобы что то кому то послать нужно знать адресата, а в модели пол у нас нет адресата, поэтому она (согласно изложенному в статье) на данный момент не реализуема. Это архитектурное ограничение вашего языка.
Мне кажется что ваша модель памяти в общем и целом разумна, но многопоточность не вписывается сюда. Я бы вам предложил скрыть многопоточность также как и в модели памяти указатели и следовать бест практисам. Т.е. я говорю о поддержке корутин вместо потоков.
Конкретно в вашей модели памяти операция лок для ассоциативной ссылки должна возвращать не опшионал стэковой ссылки, а корутину которая возвращает стэковою ссылку.
авэйт на такой корутине спрячет пересылку таска в поток владелец, заморозку объекта и отправку его назад в поток который лочит ссылку, это то как вы это видите сейчас. С точки зрения плюсовика это конечно очень много накладных расходов, но в целом рабочий вариант. Но есть альтернатива которая прекрасно работает под той же абстракцией корутин, юзер мод средства синхронизации. На самом деле нет вселенской необходимости слать асинхронный таск обрабатывать его и так же слать ответ просто что бы получить доступ к данным, можно заложить объект сделать глубокую копию и разложить обьект, копию отдать тому кто лочит ассоциативную ссылку. Это намного эффективнее чем асинхронные таски, но требует корутин, т.к. лок ассоциативной ссылки может привести к юзер мод блокировке.
Мой поинт в том что ваша модель неполна без корутин и поэтому накладывает очень серьезные архитектурные ограничения.
Конечно есть, модель пол. Сейчас уточню. У вас описана модель пуш, поток посылает асинхронный таск в mpsc очередь другого потока, тот таск исполняет и таким же образом посылает результат первому потоку в его очередь. Пол работает наоборот. У меня есть поток который генерирует таски и кладет их в СВОЮ spmc очередь, а другие потоки забирают таски на обработку из этой очереди, а результат кладут в свою очередь, первый(хотя чаще ещё какой то) поток периодически опрашивает очереди рабочих потоков на предмет результата.
Если кажется что разницы, нет то это только кажется. В модели пуш сбалансировать нагрузку потоков нетривиальная задача, а в модели пол это происходит автоматически.
Кому достаточно, а кому нет. Не всем знаете ли подходят спин локи на атомиках, а транзакционную память ещё не подвезли. К тому же если у вас там нет контеншена на атомиках то и на обычных мьютексах оно будет работать буквально точно также.
Есть у нас в проекте такое, вик поинтер в кэше, если объект уже сдох то пересоздаем если нет отдаем, работает нормально только либо для иммутабл объектов либо в одном потоке. И знаю я это потому, что как раз очень серьезные проблемы у нас с этим с мутабельными объектами в многопотоке. Одно спасает, случается редко и краши пока не преодолели порог что бы их фиксить.
Короче, подход рабочий, но с ограничениями, если добавить копи он райт будет почти универсальным, но не будет покрывать случая когда надо поменять поле шаредного объекта для всех пользователей объекта. Можно и это решить через внутренний лок объекта конечно, но в любом случае накладные расходы в рантайме на лок вик принтера не бесплатны, но вполне приемлемы для многих задач.
Это реально круть, постоянно использую типы (видимо как зависимые) в плюсах, боль конечно невыносимая нормаными девелоперами, поэтому только там где я один. Даже полностью в рантайме в плюсах это очень больно. Сможете запилить обзорную статью о том что там уже сделано какие проблемы существуют как их пытаются решать почему собственно говоря это круто (а это очень контринтуинтивно на самом деле) и ваше мнение где и когда это можно будет увидеть в языках обычных.
Вижу новые возможности для "бизнеса" - услуги регистрации на российских ресурсах. Берём человека не обремененного заботами и заводим на него аккаунт на том ресурсе где нужно. Меняем в аккаунте почту на почту заказчика услуг. Я не юрист, но вроде закон про регистрацию, а не авторизацию, ну так будут соблюдать регистрацию, а авторизовываться как удобно/надо. В законе нет запрета на 100500 аккаунтов на одного и того же человека. Думаю будет как с впн, большинство без впн, и тут большинство будет по своим перс данным зарегано, а кто захочет воспользуется услугой регистрации.
Я вполне могу доказать, что 5 — простое число, а в моей комнате нет никого, кроме меня, и никакая математика тут не мешает.
Ну с числом вопросов нет, а вот с комнатой все не так просто. Я к тому что если вы действительно можете гарантированно доказать что в комнате никого нет то вам просто нечего бояться по жизни, ну в том плане что вы всегда гарантировано сможете доказать свою невинность в суде и вас никогда не посадят не за что.
Ну так это то же самое «бороться надо» (просто абстрактно и не сегодня).
Не согласен. Бороться это активное противодействие, настаивание на своем. Противоположность этому подчинение навязанной воле, но есть как минимум ещё и третий вариант - уклонение и он не сводится к двум другим.
Ну ваще так-то индейцы там вполне себе так в рабстве находились
А в чем противоречие? Те которые не были достаточно свободными пошли в рабство, а свободных выпили с концами или в резервацию, но это ведь было не рандомно и имело связь с племенем. Ну т.е. берешь индейца узнаешь какой он культуры и смело на основе этого обновляешь вероятности исхода раб/не раб. Точно также берешь рандомного раба и ставишь на то что негр а не индеец если повторить много раз, будешь в плюсе.
По факту вы говорите, что «так как цифры можно представить по-разному, то те цифры, которые приводят к не нравящимся мне выводам, неверны ибо были представлены неправильно».
У меня иная интерпретация, я заведомо не доверяю цифрам в независимости от результата (мне приходится напоминать вам что это все только в социальном контексте), так как они заведомо ангажированны внезавистмости от того кто и как их собирал. Буквально все измерения касающиеся социального аспекта с баесом и это нормально, плохо то что баес старательно заметается под ковер и утверждается что цифры кристально объективны.
Во-первых, нет, а, во-вторых, айкью не имеет смысла.
Ну да, ну да. Айкью смысла не имеет, а мое обоснование сравнения условий в заключении совершенно точно и неоспоримо сводится к сравнению круда. Ну ладно вам виднее.
Тут очевидно важна разница между объективными и воспринимаемыми условиями.
Опачки, а почему вдруг стала важна, ещё пару сообщений назад это называлось эмоциями которым не место в объективном сравнении. Так или иначе расскажите, какой знак после запятой в круд рэйте отражает воспринимаемые, а какой объективные условия заключения? Ну раз уж вы согласились с тем что это важно, то вам с вашей математикой придется как то это учитывать.
«мне не нравятся результаты, потому что вокруг меня в Европе чистые улочки, значит, и в Норвегии пансионаты вместо тюрем»,
Забавно как вы с двух рук орудуете разными приемами. Одной рукой рационализируете/упражняетесь в математику совершено ни как не связанную с реальностью под видом объективных обоснований, с другой классические приемы. А я начинаю немного понимать, вы просто изобрели (хз может уже было я не специалист в сортах) новый прием, я буду называть его рационализаторством. Это когда реальность необоснованно подменяется цифрами, а потом расчехляется математика с целью преподнесения своего мнения как достоверно объективное знание/обоснование/гипотезу.
Смысл в том что яж этого не писал, просто потому что больше не живу в Европе, а ещё я тут в разных формах консистентно привожу доводы о том что переход от условий заключения к сравнению круда обсурден, и поэтому все остальное смысла оценивать нет.
Тогда я повторяю свой нериторический вопрос, который вы проигнорировали: почему вы делаете вывод, что ваши знакомые — клинический случай?
Вопросов много отвечать на все не целесообразно, вы там как нибудь помечайте какие ответы для вас особо ценны, ну например приоритет присваивайте, а я постараюсь его учитывать.
Ответ очень прост, люди начинают оспаривать достоверность фактов. Стилизованная выжимка из реально состоявшегося диалога:
Мне сказали, что русских ущемляют по всему миру, расскажи как тебя ущемляют?
Меня здесь никак не ущемляют, никого из моих русских друзей здесь тоже не ущемляют, да и я не знаю вообще никого кто бы был ущемлен по этническому признаку
Неправда, ты просто скрываешь от меня как тебя ущемляют.
Ну ладно, раз ущемляют значит ущемляют, тебе от туда виднее что у меня здесь.
Тогда к чему ваше предложение доказать невиновность?
К этому, ну или я ничего не понял
Невиновность — это арифметика Пеано, неочевидно.
«не устраивает, но неохота бороться»
Мой вариант, не устраивает, но считаю бессмысленным бороться больше чем есть возможность (не парясь). Это точно не заметается по ковер борьбы, это уклонение.
Я всё ждал, когда пойдут импликации на разную свободолюбивость разных народов. Чё-т дольше, чем я думал.
Ну давайте разоблочите очередное заблуждение или демагогию, я запутался, но вам виднее:
Насколько мне известно североамериканских индейцев не брали в рабство, не потому что не хотели, а потому что как то неполучалось. И как следствие этих индейцев сейчас заметно меньше чем афроамериканцев - результат свободного выбора между рабской и не рабской ментальностью.
В смысле скрывают? Одни и те же цифры можно представить по разному, где то разбить на группы где соединить, где внезапно поменять методику учёта.
По-моему, в данном случае в определённой картине заинтересованы вы, как и многие другие после переезда.
Это как? Я по вашему осознано игнорирую сообщение о том что кого-то в РФии оправдали, но при этом игнорирую сообщения что в европах посадили? А зачем мне это?
Так как эти условия заключения объективно измерить? Или нет здесь объективности, условия заключения — это как стихи?
А вы начинаете задавать хорошие вопросы. Айкью подсчитывается с учётом культуры, всемирной/единой методики расчета айкью насколько мне известно нету. Так почему условия заключения должны иметь такую методику?
Ну количество брюквы на голову(какие то материальные показатели) наверное можно сравнить объективно, а как сравнивать все остальное я понятие не имею.
Что в тюрьме внезапно паршиво, а не пансионат.
Мой поинт был в том что если уровень суицида на фронте ниже чем в тюрьме, то это прямое доказательство натягивания вами совы на глобус, т.к. условия на фронте очевидно хуже чем в тюрьме следовательно уровень суицидов должен быть выше чем в тюрьме - противоречие.
«у вас всего лишь мнение»!
Подождите, а вы всерьез считаете ваши выкладки претендующими на объективность? Я даже не знаю, я б ещё призадумался при прочтении сравнительного анализа от людей которые ну как бы в теме и подходят к снаряду как следует подготовившись, но уровень ваших рассуждений не выдерживают никакой критики, хотя вы хорошо знаете как это делается по правильному/научному.
У меня сложилось впечатление, что у вас там с правами ущемленных совсем швах, т. к. ваша риторика не отличима от их, кто первый начнет говорить что опонет демагог тот и прав/победил. Ну ладно чё вам виднее, демагог значит так. Правда возникает вопрос, а когда последний раз вы вели с кем-то беседу кого не считаете демагогом и при этом это не вы сами? Если недавно, то все ок, а если давно, ну не знаю это ещё не проблема, но уже звоночек.
Невиновность — это чайник в соседней галактике, понятно.
Именно так, в судах не доказывают невиновность, там доказывают виновность, а так как невиновность доказать не возможно, то и гарантировано защититься от оговора тоже не возможно.
Если вас устраивает, что вас могут просто так посадить
Я нигде этого не утверждал, это ваши слова. Мало того у вас ещё дальше мысль уходит, у вас (ложно)бинарный выбор либо устраивает либо надо бороться. Стало не намного понятней, но спасибо хоть за это.
Я вам тут напомню, что моя мысль была в том что когда такое происходит это не конец света, и нужно адаптироваться к тому что есть, но вот вы кстати хорошую работы провели - обнаружили что норвеги оказывается обладают свободной ментальностью и не способны адаптироваться к таким изменениям поэтому чаще чем русские (в похожих обстоятельствах) самовыпиливаются.
Обождите, я уже на вашей памяти так сделал или вы привентивно на всякий случай, ну тогда получается это уже вы как бы это самое.
Пока у меня ничего не поменялось, я продолжаю утверждать, что ваш подход не работает в социальном контексте, а в физике конечно работает, там с этим все впорядке.
Снова буду настаивать что вы подменяете реальные условия заключения (о которых вам известно примерно столько же сколько и мне) на цифры о суицидах. Это ж очевидно что это одно и тоже? Или это просто то что может быть нагуглено в цифрах, для вашего удобства.
Смотрите, я не оспариваю факт существования этих цифр, у меня нет оснований не доверять результатам вашего поиска, я оспариваю разумность отождествление этих цифр с условиями заключения.
Будете вдвоём эмоционально спорить (не знаю, как это должно выглядеть — наверное, у кого крик крикливее и пена пенистее), или попытаетесь там что-то на цифрах показать?
Есть такой опыт, родственники называются. Они мне рассказывают как я тут живу и какие у меня тут проблемы согласно их модели построенной на пропаганде. В таких клинических случаях ничего не работает, мое прямое опровержение основанное на первичных фактах из моей жизни не имеет эффекта.
Когда мне говорят о проблемах простые люди с ними столкнувшиеся у меня нет причин им не доверять, зачем мне цифры и статистика здесь? Что качественно нового они дают по сравнению с фактами.
Когда мне тыкают в нос цифры из заинтересованных источников, то я им по умолчанию не доверяю (ещё раз напоминаю социальный контекст), т к. источник заинтересован в той или иной картине, а по простому баес. А ещё в этих источниках считается обсалютно нормальным скрывать что цифры с баесом и естественно не указывать с каким.
Например, вам нравится в изоляции от всего остального выбирать базовый уровень суицида и сравнивать его с тем что в тюрьме, находить различия и делать безапелляционное выводы. Вот вам идея, сравните базовый уровень суицидов в Украине с уровнем суицида в ВСУ (если конечно он доступен) ну или другой пары стран/ условий. По вашей логике мы должны увидеть просто вопиющую разницу, т.к. думаю очевидно что условия жизни на линии фронта сильно хуже чем не налинии.
Ну а если вы эту разницу не обнаружите или она будет не такой большой или может быть даже ниже чем суициды в тюрьме, что тогда?
Я к тому что ваш метод подмены реальности на цифры в каждом случае, требует какого-то обоснования, анализа слабых сторон и границ преминимости. Выж учёный это вроде как должно было входить в какой то курс, что то типа методика исследования.
Не переживайте я не требую от вас всего этого это было бы уж слишком для хабра, но без всего этого настаивать что ваша рационализаторство чем то принципиально объективней других мнений не обоснованно.
А результат моделирования и реальность — они все сводятся к вашим эмоциям, верно?
Да, верно. А у вас не так? Вы там вроде кандидатский минимум по философии ботали, чё там по этому поводу говорят?
Тюремная система страны описывается тем, что вы ощутили, пребывая в этой стране некоторое недолгое время и не входя в контакт с этой системой, да?
Понятие не имею чем она там описывается, а должен? А ну да по вашему человек без копания сто пяцот цифер в интернатах не имеет право на мнение, и уж тем более такое безапелляционное как у меня. Ну а по-моему имеет. Вы пытаетесь загнать мои рассуждения в рамки вашей модели построенной согласно мат логике на каких ты цифрах. И ожидаете что я буду обсуждать технические детали в рамках вашей модели, я уже несколько постов доношу иную мысль. Ваша модель не адекватная по построению, а не по техническим выкладкам, с которыми все впорядке. Поэтому не вижу смысла оспаривать то что технически верно, но обсурдно в целом.
Довольно категорично, а на чем основываются ваши страхи? Есть прецеденты?
Представим, что кожанным запретили управлять всеми машинами в вашей локации, чё и в этом сеттинге низя сворачивать? А если можно увернуться без существенного ущерба вообще, почему нет то?
Вы вообще в курсе, что ПДД не полны и противоречивы, по определению, а из этого следует свобода выбора действий как минимум в редких кейсах, чё делать будем?
Т.е. повторный ран вернёт, токен который что? Комплетед как при кенселе? Или повторный ран кинет исключение? Это конечно вкусовщина, но все же явный мув для таска как то более идиоматичен. И я так подумал, и вижу что ваш токен без зена, по сути ни чем от стд футуры не отличается, я бы даже ее и возвращал, хотя возможно у вас там есть кэнсел и метод узнать про это. Вот вы писали статью про АПИ, а в этом примере ничего толком не показали т.к все декларации нужно самому додумывать, так не годится конечно.
А с зеном на вашей футуре будут точно такие же проблемы за которые вы ругаете кутешные футуры. Вам по сути нужно превратить вашу футуру назад в таск, и тогда уже можно через имеющийся АПИ навесить новых зенов, только из вашего АПИ непонятно где же именно будут работать новые зены, там есть 2 варианта если не успели до окончания первой футуры то тут все ясно на том экзекуторе который был при 2 ране, а если успели то не ясно, на первом экзекуторе или на 2.
Вообщем, опять же вкусовщина, но я вижу ровно 0 принципиальных отличий вашего дизайна от пары стд асинк/футура (ну разве что у вас ещё кэнсел завезли). Другими словами если я могу лэйзи собрать таск, то что мне мешает также лэйзи собрать все лямбды в одну а потом ее родную и отправить в асинк получить футуру и также ждать на ней? Даже больше, согласно вашим же рекомендациям именно так и нужно сделать, т.к. это добавляет ещё больше ортогональности, комбинировать лямбды может понадобиться и в отдельности от асинхронщины. А кэнселейшен токен (если нужен) можно через параметр лямбды передавать и потом через тупл вместе с рещультатам всем последующим лямбдам в цепочке.
Короче я про то что связывать чейнинг лямбд с асинхронщиной да ещё и мешать туда культю в одном флаконе как то противоречит вашим же заветам по АПИ. Но хочу выразить благодарность за примеры, и ссылку на ниблера, у меня просто эта боль есть и мне "скоро" это все рефакторить, теперь я вижу как это красиво сделать, и я тоже на культе сижу это 3 ортогональное измерение для АПИ, которое не нужно подмешивать в таски т.к. у нас не везде разрешено в АПИ ссылаться на кутэ, а в некоторых либах даже и использовать ее низя.
А что делать в с вашим АПИ если лэйзи инициализация по какой то причине не вариант? Ну или более конкретно нужно поднасыпать зенов когда лягушку уже варят или уже сварили? А ещё точнее ваш АПИ нарушает ваше 1 правило, таск ран я могу вызвать несколько раз, могу добавить зенов после ран. По вашей лэйзи логике ран должен быть у пула и консумить таск и возвращать какой то токен на котором можно только ждать или спросить о готовности.
Как эксперт по плюсам хочу обозначить несколько неточностей с вашей стороны
С++ был спроектирован в эпоху однопоточности и с учётом этого важного контекста он обсалютно прекрасно поддерживает композицию. Дефолтный выбор для реализации композиции это родительский объект владеет дочерним по значению. Ассоциативная ссылка как и у вас это вик поинтер, агрегатная ссылка это забыл точное название из буста, смарт поинтер на объект со внутренним счётчиком ссылок. Как так, спросите вы, композит же это значение как создать вик поинтер на значение? Да очень просто рутовый объект должен реализовывать шаред фром зис, а все дочерние объекты используют его счётчик при создании ассоциативной ссылки. Это та редко используемая специализация конструктора стд шаред поинтер о которой мало кто знает и совсем мало кто понимает как это работает и зачем это нужно. Вот именно для этого оно и нужно.
У вас есть единственное разумное возражение - полиморфизм. Да в таком случае композит это шаред поинтер, а ассоциативная ссылка на него вик поинтер, но есть альтернатива известная ещё с античных(си) времён - полиморфизм на вариантах или полиморфизм в функциональном стиле. Это когда рут объект имеет по значению правильно выравненный достаточного (для хранения любого возможного полиморфного типа) размера массив байт + дескриминатор. Полиморфные объекты размещаются внутри этого массива через инплэйс нью.
Глубокое копирование при использовании значений для агрегатов идёт почти из коробки, да ассоциативные ссылки внутри одного дерева объектов нужно поправить руками в конструкторе/присваивании после копирования.
Что я хочу сказать, с++ позволяет сделать все по уму почти из коробки, да как это делать правильно и не ошибаться понимают мало людей, но ваше заявление что в плюсах это всегда русская рулетка основано на недостаточных знаниях о с++.
Да, многопоточность в плюсах это отдельная боль и все становится намного сложнее когда объекты используются в разных потоках, тут я соглашусь что без специальных смарт поинтеров могут возникать не иллюзорные проблемы удаления объектов не в тех потоках где надо.
Общая очередь это деталь реализации тред пула, проблема у вас в языке, чтобы что то кому то послать нужно знать адресата, а в модели пол у нас нет адресата, поэтому она (согласно изложенному в статье) на данный момент не реализуема. Это архитектурное ограничение вашего языка.
Мне кажется что ваша модель памяти в общем и целом разумна, но многопоточность не вписывается сюда. Я бы вам предложил скрыть многопоточность также как и в модели памяти указатели и следовать бест практисам. Т.е. я говорю о поддержке корутин вместо потоков.
Конкретно в вашей модели памяти операция лок для ассоциативной ссылки должна возвращать не опшионал стэковой ссылки, а корутину которая возвращает стэковою ссылку.
авэйт на такой корутине спрячет пересылку таска в поток владелец, заморозку объекта и отправку его назад в поток который лочит ссылку, это то как вы это видите сейчас. С точки зрения плюсовика это конечно очень много накладных расходов, но в целом рабочий вариант. Но есть альтернатива которая прекрасно работает под той же абстракцией корутин, юзер мод средства синхронизации. На самом деле нет вселенской необходимости слать асинхронный таск обрабатывать его и так же слать ответ просто что бы получить доступ к данным, можно заложить объект сделать глубокую копию и разложить обьект, копию отдать тому кто лочит ассоциативную ссылку. Это намного эффективнее чем асинхронные таски, но требует корутин, т.к. лок ассоциативной ссылки может привести к юзер мод блокировке.
Мой поинт в том что ваша модель неполна без корутин и поэтому накладывает очень серьезные архитектурные ограничения.
Конечно есть, модель пол. Сейчас уточню. У вас описана модель пуш, поток посылает асинхронный таск в mpsc очередь другого потока, тот таск исполняет и таким же образом посылает результат первому потоку в его очередь. Пол работает наоборот. У меня есть поток который генерирует таски и кладет их в СВОЮ spmc очередь, а другие потоки забирают таски на обработку из этой очереди, а результат кладут в свою очередь, первый(хотя чаще ещё какой то) поток периодически опрашивает очереди рабочих потоков на предмет результата.
Если кажется что разницы, нет то это только кажется. В модели пуш сбалансировать нагрузку потоков нетривиальная задача, а в модели пол это происходит автоматически.
Кому достаточно, а кому нет. Не всем знаете ли подходят спин локи на атомиках, а транзакционную память ещё не подвезли. К тому же если у вас там нет контеншена на атомиках то и на обычных мьютексах оно будет работать буквально точно также.
Есть у нас в проекте такое, вик поинтер в кэше, если объект уже сдох то пересоздаем если нет отдаем, работает нормально только либо для иммутабл объектов либо в одном потоке. И знаю я это потому, что как раз очень серьезные проблемы у нас с этим с мутабельными объектами в многопотоке. Одно спасает, случается редко и краши пока не преодолели порог что бы их фиксить.
Короче, подход рабочий, но с ограничениями, если добавить копи он райт будет почти универсальным, но не будет покрывать случая когда надо поменять поле шаредного объекта для всех пользователей объекта. Можно и это решить через внутренний лок объекта конечно, но в любом случае накладные расходы в рантайме на лок вик принтера не бесплатны, но вполне приемлемы для многих задач.
Это реально круть, постоянно использую типы (видимо как зависимые) в плюсах, боль конечно невыносимая нормаными девелоперами, поэтому только там где я один. Даже полностью в рантайме в плюсах это очень больно. Сможете запилить обзорную статью о том что там уже сделано какие проблемы существуют как их пытаются решать почему собственно говоря это круто (а это очень контринтуинтивно на самом деле) и ваше мнение где и когда это можно будет увидеть в языках обычных.
Вижу новые возможности для "бизнеса" - услуги регистрации на российских ресурсах. Берём человека не обремененного заботами и заводим на него аккаунт на том ресурсе где нужно. Меняем в аккаунте почту на почту заказчика услуг. Я не юрист, но вроде закон про регистрацию, а не авторизацию, ну так будут соблюдать регистрацию, а авторизовываться как удобно/надо. В законе нет запрета на 100500 аккаунтов на одного и того же человека. Думаю будет как с впн, большинство без впн, и тут большинство будет по своим перс данным зарегано, а кто захочет воспользуется услугой регистрации.
Ну с числом вопросов нет, а вот с комнатой все не так просто. Я к тому что если вы действительно можете гарантированно доказать что в комнате никого нет то вам просто нечего бояться по жизни, ну в том плане что вы всегда гарантировано сможете доказать свою невинность в суде и вас никогда не посадят не за что.
Не согласен. Бороться это активное противодействие, настаивание на своем. Противоположность этому подчинение навязанной воле, но есть как минимум ещё и третий вариант - уклонение и он не сводится к двум другим.
А в чем противоречие? Те которые не были достаточно свободными пошли в рабство, а свободных выпили с концами или в резервацию, но это ведь было не рандомно и имело связь с племенем. Ну т.е. берешь индейца узнаешь какой он культуры и смело на основе этого обновляешь вероятности исхода раб/не раб. Точно также берешь рандомного раба и ставишь на то что негр а не индеец если повторить много раз, будешь в плюсе.
У меня иная интерпретация, я заведомо не доверяю цифрам в независимости от результата (мне приходится напоминать вам что это все только в социальном контексте), так как они заведомо ангажированны внезавистмости от того кто и как их собирал. Буквально все измерения касающиеся социального аспекта с баесом и это нормально, плохо то что баес старательно заметается под ковер и утверждается что цифры кристально объективны.
Ну да, ну да. Айкью смысла не имеет, а мое обоснование сравнения условий в заключении совершенно точно и неоспоримо сводится к сравнению круда. Ну ладно вам виднее.
Опачки, а почему вдруг стала важна, ещё пару сообщений назад это называлось эмоциями которым не место в объективном сравнении. Так или иначе расскажите, какой знак после запятой в круд рэйте отражает воспринимаемые, а какой объективные условия заключения? Ну раз уж вы согласились с тем что это важно, то вам с вашей математикой придется как то это учитывать.
Забавно как вы с двух рук орудуете разными приемами. Одной рукой рационализируете/упражняетесь в математику совершено ни как не связанную с реальностью под видом объективных обоснований, с другой классические приемы. А я начинаю немного понимать, вы просто изобрели (хз может уже было я не специалист в сортах) новый прием, я буду называть его рационализаторством. Это когда реальность необоснованно подменяется цифрами, а потом расчехляется математика с целью преподнесения своего мнения как достоверно объективное знание/обоснование/гипотезу.
Смысл в том что яж этого не писал, просто потому что больше не живу в Европе, а ещё я тут в разных формах консистентно привожу доводы о том что переход от условий заключения к сравнению круда обсурден, и поэтому все остальное смысла оценивать нет.
Вопросов много отвечать на все не целесообразно, вы там как нибудь помечайте какие ответы для вас особо ценны, ну например приоритет присваивайте, а я постараюсь его учитывать.
Ответ очень прост, люди начинают оспаривать достоверность фактов. Стилизованная выжимка из реально состоявшегося диалога:
Мне сказали, что русских ущемляют по всему миру, расскажи как тебя ущемляют?
Меня здесь никак не ущемляют, никого из моих русских друзей здесь тоже не ущемляют, да и я не знаю вообще никого кто бы был ущемлен по этническому признаку
Неправда, ты просто скрываешь от меня как тебя ущемляют.
Ну ладно, раз ущемляют значит ущемляют, тебе от туда виднее что у меня здесь.
К этому, ну или я ничего не понял
Мой вариант, не устраивает, но считаю бессмысленным бороться больше чем есть возможность (не парясь). Это точно не заметается по ковер борьбы, это уклонение.
Ну давайте разоблочите очередное заблуждение или демагогию, я запутался, но вам виднее:
Насколько мне известно североамериканских индейцев не брали в рабство, не потому что не хотели, а потому что как то неполучалось. И как следствие этих индейцев сейчас заметно меньше чем афроамериканцев - результат свободного выбора между рабской и не рабской ментальностью.
Понятие не имею, что работает для всех.
В смысле скрывают? Одни и те же цифры можно представить по разному, где то разбить на группы где соединить, где внезапно поменять методику учёта.
Это как? Я по вашему осознано игнорирую сообщение о том что кого-то в РФии оправдали, но при этом игнорирую сообщения что в европах посадили? А зачем мне это?
А вы начинаете задавать хорошие вопросы. Айкью подсчитывается с учётом культуры, всемирной/единой методики расчета айкью насколько мне известно нету. Так почему условия заключения должны иметь такую методику?
Ну количество брюквы на голову(какие то материальные показатели) наверное можно сравнить объективно, а как сравнивать все остальное я понятие не имею.
Мой поинт был в том что если уровень суицида на фронте ниже чем в тюрьме, то это прямое доказательство натягивания вами совы на глобус, т.к. условия на фронте очевидно хуже чем в тюрьме следовательно уровень суицидов должен быть выше чем в тюрьме - противоречие.
Подождите, а вы всерьез считаете ваши выкладки претендующими на объективность? Я даже не знаю, я б ещё призадумался при прочтении сравнительного анализа от людей которые ну как бы в теме и подходят к снаряду как следует подготовившись, но уровень ваших рассуждений не выдерживают никакой критики, хотя вы хорошо знаете как это делается по правильному/научному.
У меня сложилось впечатление, что у вас там с правами ущемленных совсем швах, т. к. ваша риторика не отличима от их, кто первый начнет говорить что опонет демагог тот и прав/победил. Ну ладно чё вам виднее, демагог значит так. Правда возникает вопрос, а когда последний раз вы вели с кем-то беседу кого не считаете демагогом и при этом это не вы сами? Если недавно, то все ок, а если давно, ну не знаю это ещё не проблема, но уже звоночек.
Именно так, в судах не доказывают невиновность, там доказывают виновность, а так как невиновность доказать не возможно, то и гарантировано защититься от оговора тоже не возможно.
Я нигде этого не утверждал, это ваши слова. Мало того у вас ещё дальше мысль уходит, у вас (ложно)бинарный выбор либо устраивает либо надо бороться. Стало не намного понятней, но спасибо хоть за это.
Я вам тут напомню, что моя мысль была в том что когда такое происходит это не конец света, и нужно адаптироваться к тому что есть, но вот вы кстати хорошую работы провели - обнаружили что норвеги оказывается обладают свободной ментальностью и не способны адаптироваться к таким изменениям поэтому чаще чем русские (в похожих обстоятельствах) самовыпиливаются.
Расскажите подробнее за какие рассисткие высказывания вас отменили? Недавно читал статью как также инженера мракософта отменили.
Ну давайте докажите, отсутствие чайника в соседней галактике, хотите Пеано, хотите чем то другим.
Ну так всё таки поделитесь критериями различия свободной и рабской ментальности? А то я всё никак не уловлю, как их надо различать то.
Обождите, я уже на вашей памяти так сделал или вы привентивно на всякий случай, ну тогда получается это уже вы как бы это самое.
Пока у меня ничего не поменялось, я продолжаю утверждать, что ваш подход не работает в социальном контексте, а в физике конечно работает, там с этим все впорядке.
Снова буду настаивать что вы подменяете реальные условия заключения (о которых вам известно примерно столько же сколько и мне) на цифры о суицидах. Это ж очевидно что это одно и тоже? Или это просто то что может быть нагуглено в цифрах, для вашего удобства.
Смотрите, я не оспариваю факт существования этих цифр, у меня нет оснований не доверять результатам вашего поиска, я оспариваю разумность отождествление этих цифр с условиями заключения.
Есть такой опыт, родственники называются. Они мне рассказывают как я тут живу и какие у меня тут проблемы согласно их модели построенной на пропаганде. В таких клинических случаях ничего не работает, мое прямое опровержение основанное на первичных фактах из моей жизни не имеет эффекта.
Когда мне говорят о проблемах простые люди с ними столкнувшиеся у меня нет причин им не доверять, зачем мне цифры и статистика здесь? Что качественно нового они дают по сравнению с фактами.
Когда мне тыкают в нос цифры из заинтересованных источников, то я им по умолчанию не доверяю (ещё раз напоминаю социальный контекст), т к. источник заинтересован в той или иной картине, а по простому баес. А ещё в этих источниках считается обсалютно нормальным скрывать что цифры с баесом и естественно не указывать с каким.
Например, вам нравится в изоляции от всего остального выбирать базовый уровень суицида и сравнивать его с тем что в тюрьме, находить различия и делать безапелляционное выводы. Вот вам идея, сравните базовый уровень суицидов в Украине с уровнем суицида в ВСУ (если конечно он доступен) ну или другой пары стран/ условий. По вашей логике мы должны увидеть просто вопиющую разницу, т.к. думаю очевидно что условия жизни на линии фронта сильно хуже чем не налинии.
Ну а если вы эту разницу не обнаружите или она будет не такой большой или может быть даже ниже чем суициды в тюрьме, что тогда?
Я к тому что ваш метод подмены реальности на цифры в каждом случае, требует какого-то обоснования, анализа слабых сторон и границ преминимости. Выж учёный это вроде как должно было входить в какой то курс, что то типа методика исследования.
Не переживайте я не требую от вас всего этого это было бы уж слишком для хабра, но без всего этого настаивать что ваша рационализаторство чем то принципиально объективней других мнений не обоснованно.
Да, верно. А у вас не так? Вы там вроде кандидатский минимум по философии ботали, чё там по этому поводу говорят?
Понятие не имею чем она там описывается, а должен? А ну да по вашему человек без копания сто пяцот цифер в интернатах не имеет право на мнение, и уж тем более такое безапелляционное как у меня. Ну а по-моему имеет. Вы пытаетесь загнать мои рассуждения в рамки вашей модели построенной согласно мат логике на каких ты цифрах. И ожидаете что я буду обсуждать технические детали в рамках вашей модели, я уже несколько постов доношу иную мысль. Ваша модель не адекватная по построению, а не по техническим выкладкам, с которыми все впорядке. Поэтому не вижу смысла оспаривать то что технически верно, но обсурдно в целом.