me22 wrote:
On 16/06/07, Meryl Silverburgh
wrote: Can you please tell me if i can do this with boost::thread library? 1. create a timer (say 5 seconds) which execute a function in a different thread when it expires. 2. the creator can cancel the timer before it expires.
It's not premade, but you could do it easily enough. Start a thread which will wait (until an xtime), then call a function (stored in a boost::function
perhaps), so long as a flag isn't set (you could make that in a shared_ptr<bool> to avoid lifetime worries).
That works. However, it's nicer to use a 'condition' instead of a global
flag and a 'timed_wait' on that condition to put the thread asleep.
This way the condition will wake up the thread so it can be reused.
I'll attach a simple "interval timer" that uses a condition variable to
terminate the thread. Changing it to the "stop watch timer" described in
the OP should be a matter of just adding some more conditions.
Regards,
Tobias
#include <string>
#include <iostream>
#include