
2 Oct
2009
2 Oct
'09
4:16 p.m.
David M. Cotter wrote:
say i'm on the main thread, and i've got a thread::id of some other preemptive thread. i do not have the actual boost::thread object any more.
and i want to unceremoniously kill that thread. like right now.
how do i kill it? i don't see a way to recover the actual boost::thread from the thread::id. but even if i could, and then call thread.interrupt(), that's more of a polite request which is free to be ignored, rather than a you_must_die_now() thing.
The main problem with killing threads is that it doesn't unwind the stack and thus breaks RAII. Therefore the best "official" way to terminate the thread in C++ is to interrupt it. If you want to do it the hard way, you're in C world with pthread_kill and alikes.