Size: a a a

2020 June 16

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
А, я понял, возможность dismiss не встроить в обработку очереди и нужно сделать из void() dismissable void().
Ну говорю, максимально экстремальным способом можно записать таки лишнее поле и проверить сигнатуру события на чтение ссылки на этот параметр
источник

CD

Constantine Drozdov in pro.cxx
И расширить возвращаемый интерфейс на возможность читать это поле
источник

CD

Constantine Drozdov in pro.cxx
Там еще немного variant из двух сигнатур вызовов, но это тоже не проблема
источник
2020 June 17

CD

Constantine Drozdov in pro.cxx
То есть я могу обойти эту проблему, изменив базовый интерфейс очереди обработки событий, но мне кажется, что ошибка все еще в unique_ptr, который делает вызов виртуального деструктора, находясь в unspecified state
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
И расширить возвращаемый интерфейс на возможность читать это поле
Не не, ничего не расширяя, типа {fn, dismiss} = make_dismissable([]{...});
источник

DS

Dmitry Sokolov in pro.cxx
Но да, тут ток shared дополнительный.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Не не, ничего не расширяя, типа {fn, dismiss} = make_dismissable([]{...});
Хм... давай тогда по порядку. Что возвращает очередь в ответ на post(once_callable_function)?
источник

CD

Constantine Drozdov in pro.cxx
А, кроме post(once_callable_function) будет еще post(queue::task)
источник

CD

Constantine Drozdov in pro.cxx
Не, не сработает
источник

DS

Dmitry Sokolov in pro.cxx
Constantine Drozdov
Хм... давай тогда по порядку. Что возвращает очередь в ответ на post(once_callable_function)?
Зависит от... У меня принимает ptr& и возвращает bool.
источник

CD

Constantine Drozdov in pro.cxx
Dmitry Sokolov
Зависит от... У меня принимает ptr& и возвращает bool.
ptr на что?
источник

DS

Dmitry Sokolov in pro.cxx
У меня очереди интрузивные, много разных post
источник

CD

Constantine Drozdov in pro.cxx
У меня очередь не ведет дальнейшее полиморфирование событий
источник

CD

Constantine Drozdov in pro.cxx
Надо?
источник

CD

Constantine Drozdov in pro.cxx
А, можно разворачивать once_callable_function в управляющем блоке
источник

CD

Constantine Drozdov in pro.cxx
Показывать интерфейс таски очереди и заворачивать шаблонненько
источник

CD

Constantine Drozdov in pro.cxx
Я что-то понял, возможно, именно то, что ты говоришь :)
источник

 P

 ‌‌Gleb Pilipets... in pro.cxx
А можете посоветовать литературу, где можно нормально прочитать про boost корутины? Потому что все примеры, что находил, далеки от production кода.

Например, стоит задача переписать логику на колбеках под использование корутин.
источник

CD

Constantine Drozdov in pro.cxx
        struct detachable_post_event_control_block_type final
       {
         once_callable_function<void()> invocation;
       };
источник

CD

Constantine Drozdov in pro.cxx
вот тут на самом деле слишком принцип чайника, да?
источник