Size: a a a

2020 June 16

CD

Constantine Drozdov in pro.cxx
Как предлагаешь разруливать? :)
источник

CD

Constantine Drozdov in pro.cxx
Нотификацию OnBeforeDtorCalled() ? :)
источник

DS

Dmitry Sokolov in pro.cxx
Этот guard это sharing владения, не unique получается.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Этот guard это sharing владения, не unique получается.
Где шаринг-то?
источник

CD

Constantine Drozdov in pro.cxx
К черту подробности, как это должно было выглядеть?
источник

CD

Constantine Drozdov in pro.cxx
Деструктор фабрики должен убрать сообщение из очереди. Сообщение постучит на фабрику при вызове самостоятельно. Возможно обнуление очереди без вызова. В любой момент фабрика должна знать, находится ли сообщение в очереди.
источник

CD

Constantine Drozdov in pro.cxx
std::shared_ptr<bool> предлагаешь аллокать, чтобы разрулить ситуацию? :)
источник

CD

Constantine Drozdov in pro.cxx
вместо ~factory() { guard = nullptr; } ?
источник

DS

Dmitry Sokolov in pro.cxx
Сообщение в очереди, сообщение в фабрике, sharing.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Сообщение в очереди, сообщение в фабрике, sharing.
Шаринг чего?
источник

CD

Constantine Drozdov in pro.cxx
Очередь мне предоставляет guard на зануление содержимого сообщения в очереди, вместо этого я должен аллоцировать шаред блок между фабрикой и сообщением, в который положить что? Этот guard?
источник

CD

Constantine Drozdov in pro.cxx
guard не связан по корректности состояния с нахождением сообщения в очереди, там как раз shared_ptr потому что это две независимые точки дискарда по типу или
источник

DS

Dmitry Sokolov in pro.cxx
Ну дык и хранить в guard shared ptr, а занулять payload (который unique ptr?).
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Ну дык и хранить в guard shared ptr, а занулять payload (который unique ptr?).
payload это очевидно once_callable_unique_function.
И расширять интерфейс guard, добавляя проверку статуса сообщения, и передавать параметр в once_callable_unique_function для возможности записи статуса сообщения?
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
payload это очевидно once_callable_unique_function.
И расширять интерфейс guard, добавляя проверку статуса сообщения, и передавать параметр в once_callable_unique_function для возможности записи статуса сообщения?
Это многопоточная очередь?
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Это многопоточная очередь?
Отзыв определен только для главного потока (считай, нет)
источник

CD

Constantine Drozdov in pro.cxx
Отзыв подразумевает, что событие либо произошло, либо не произойдет, а в многопотоке появится еще состояние "происходит сейчас", что попросту лишает отзыв смысла
источник

DS

Dmitry Sokolov in pro.cxx
Ну тут мне кажется вариант типа
shared_ptr task = ...;
executer.schedule(task);
task.dismiss();
источник

DS

Dmitry Sokolov in pro.cxx
Т.е. guard вообще лишняя сущность, даже если task создаётся где-то внутре
auto task = schedule ([]{...});
task.dismiss();
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Ну тут мне кажется вариант типа
shared_ptr task = ...;
executer.schedule(task);
task.dismiss();
Этот dismiss в guard и завернут, чтобы в каждом bind на this судорожно не проверять деструктор на dismiss
источник