Czy można anulować wątek zwiększenia, tak jak w przypadku pthread?Zwiększenie anulowania wątku
Piszę prosty watchdog, aby zakończyć wątki robocze, jeśli się zawieszają i nie ma sposobu, aby po prostu anulować wątek w bibliotece Boost Thread.
Czy można anulować wątek zwiększenia, tak jak w przypadku pthread?Zwiększenie anulowania wątku
Piszę prosty watchdog, aby zakończyć wątki robocze, jeśli się zawieszają i nie ma sposobu, aby po prostu anulować wątek w bibliotece Boost Thread.
Nie obsługują anulowania, co jest korzystne, ponieważ może powodować wszelkie subtelne problemy.
Zapoznaj się z sekcją dokumentacji, która obejmuje przerwanie wątku i wyjątek boost :: thread_interrupted i wymyśl coś, co pozwoli Ci osiągnąć to, czego chcesz, jednocześnie czyszcząc rzeczy.
one nie obsługują anulowanie wyjęciu z pudełka (jak podkreślił Duck), jednak w zależności od przetwarzania dzieje się wewnątrz wątku (ów) pracownika, Pomyślę użyciu boost::condition
powiadomić wątek że powinien zakończyć się (czyściutko) przy najbliższej okazji.
Wygląda na to, że przerwanie wątku boost nie pomoże, jeśli wątek utknie w pętli, co jest jedną z rzeczy, które próbuję chronić przed. Podczas rezygnacji z przenośności zaczynam myśleć, że najlepiej jest używać programu pthread do czyszczenia. –
Lub umieść punkt (punkty) przerwania w dowolnym punkcie pętli. Nie powinno to być zbyt mocne, zwłaszcza jeśli wątek jest już długi. A reszta infrastruktury przerwania jest już gotowa. – Duck