Хех, я попробовал заменить ту логику с io_context на msg_queue и condition_variable по принципу ниже, но работа осталась некоректной.
Прога не зависает, но все равно работает некорректно при статической инициализации: завершается слишком быстро, а при детальном дебаге вообще падает на системных либах.
bool job_finished;
std::mutex post_mutex;
std::queue<std::function<void ()>> msg_queue;
std::thread worker_thread;
std::condition_variable cv;
Поэтому нужно фиксить static инициализацию.Я посмотрел здесь примеры
https://docs.microsoft.com/en-us/windows/win32/dlls/dynamic-link-library-best-practices, но не увидел, как именно правильно инициализировать контекст.
Тип где хранить эти context variables и т.д. - кто-то может подсказать мануал?