Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boost Thread Cancelling

Can you cancel a Boost Thread as you would a pthread?

I'm writing a simple watchdog to terminate worker threads if they crash and there doesn't seem to be a way to simply cancel a thread in the Boost Thread library.

like image 410
Justin Scheiner Avatar asked Jun 24 '09 17:06

Justin Scheiner


2 Answers

They don't support cancel, which is a good thing since it can cause all manner of subtle problems.

Take a look at the section of docs that cover thread interruption and the boost::thread_interrupted exception and fashion something that allows you to accomplish what you want while also cleaning things up.

like image 62
Duck Avatar answered Nov 19 '22 16:11

Duck


They don't support cancelling out of the box (as pointed out by Duck), however depending on the processing going on inside your worker thread(s), I'd consider using a boost::condition to notify the thread that it should finish (cleanly) at the earliest opportunity.

like image 28
Alan Avatar answered Nov 19 '22 16:11

Alan