Деструктор фабрики должен убрать сообщение из очереди. Сообщение постучит на фабрику при вызове самостоятельно. Возможно обнуление очереди без вызова. В любой момент фабрика должна знать, находится ли сообщение в очереди.
Очередь мне предоставляет guard на зануление содержимого сообщения в очереди, вместо этого я должен аллоцировать шаред блок между фабрикой и сообщением, в который положить что? Этот guard?
guard не связан по корректности состояния с нахождением сообщения в очереди, там как раз shared_ptr потому что это две независимые точки дискарда по типу или
Ну дык и хранить в guard shared ptr, а занулять payload (который unique ptr?).
payload это очевидно once_callable_unique_function. И расширять интерфейс guard, добавляя проверку статуса сообщения, и передавать параметр в once_callable_unique_function для возможности записи статуса сообщения?
payload это очевидно once_callable_unique_function. И расширять интерфейс guard, добавляя проверку статуса сообщения, и передавать параметр в once_callable_unique_function для возможности записи статуса сообщения?
Отзыв подразумевает, что событие либо произошло, либо не произойдет, а в многопотоке появится еще состояние "происходит сейчас", что попросту лишает отзыв смысла