Так уж получилось, что поставили мне библиотечку, которая работает только в блокирующем режиме, что то типа
resulttype result = waitsomуevent(params ...);
и ни как иначе, ни таймаутов, ни мултиплексора, ни чего другого. Пока с этим надо как-то жить.
Раздал я каждому такому "событию" по зацикленному потоку, фьючерсами забираю результат (там хоть таймауты на ожидание есть).
Но вот когда необходимо завершить программу, возникает проблема с блокировкой при присоединения потока:
if (somethread.joinable())
somethread.join() // <--- Вот тут блокирует
чего в общем то и следовало ожидать. По симу единственным решением вижу уничтожение потока грубой силой. Но вот что-то не могу найти как, хотя где-то помниться читал, что вроде как возможно.
И дополню: сгенерит событие самому, заменить библиотеку нельзя. Такое ТЗ.