Boost logo

Boost Users :

Subject: Re: [Boost-users] Newbie question
From: Roland Bock (rbock_at_[hidden])
Date: 2009-12-08 03:15:01


Vadim Ryvchin wrote:
> Hello,
>
> I have a problem with interruption of threads.
> I have one function that I want to run in two different threads with
> different parameters. When one of the function's instances finishes it
> stops the other instance. I can't change the function's code, but I can
> write wrapper to it.
> My problem is in stopping the other thread. Using timed_join I find
> which thread is finished, but I can't find a good solution for stopping
> the second one.
> How should I use interrupt method correctly or suggest me for correct
> thread stopping function.
> BTW, I can't just leave the other thread to run, it's very high CPU
> consumer.
>
> Thank you all.

Hi,

with no way to change the functions and no global variables to indicate
that they should stop, I see two options:

a) try to do some hacker's magic and manipulate the memory of the
function in such a way that it stops but not crashes (the sheer thought
of that approach makes me shiver in horror)

b) start the functions in separate processes. Stopping the second
process is much easier. Of course, then you still could have problems
with open files and so on.

HTH

Roland


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net