Здравствуйте, dosik, Вы писали:
D>Раздал я каждому такому "событию" по зацикленному потоку, фьючерсами забираю результат (там хоть таймауты на ожидание есть).
я тут плохо понял каким образом потоки раздаются и как фьючерсы используются, но нельзя ли потоку при создании передать нечто (хоть ссылку на булевый флаг, хоть ивент), за что можно дернуть при завершении, чтобы потоки вышли бы без терминации?
D>По симу единственным решением вижу уничтожение потока грубой силой.
это очень плохая практика, но тем не менее подскажу: надо использовать thread::native_handle :
http://en.cppreference.com/w/cpp/thread/thread/native_handle и платформозависимые функции
первая ссылка из гугла:
http://stackoverflow.com/questions/12207684/how-do-i-terminate-a-thread-in-c11
но я, кстати, слышал от умных людей. что все же хотят добавить этот метод в std::thread. видимо, пока в комитете копья ломают