Boost logo

Boost :

Subject: Re: [boost] [thread] condition::try_wait() and thread::try_join()?
From: Anthony Williams (anthony.ajw_at_[hidden])
Date: 2008-11-11 04:45:28


"vicente.botet" <vicente.botet_at_[hidden]> writes:

> ----- Original Message -----
> From: "Anthony Williams" <anthony.ajw_at_[hidden]>
> To: <boost_at_[hidden]>
> Sent: Monday, November 10, 2008 4:05 PM
> Subject: Re: [boost] [thread] condition::try_wait() and thread::try_join()?
>
>
>>
>> "vicente.botet" <vicente.botet_at_[hidden]> writes:
>>
>>> From: "Anthony Williams" <anthony.ajw_at_[hidden]>
>>>>
>>>> try_join is more sensible, and it might be worth adding it.
>>>
>>> I'm more interested on the try_join. Does the following do a try_join?
>>>
>>> boost::thread th(fct);
>>> th.timed_join(0);
>>
>> Yes, that would work (though you'd need to specify units: a plain "0"
>> won't compile).
>>
>>> Is this the more efficient way?
>>
>> I'm not sure what you're asking here.
>
> My question is if this is the correct way to know if a thread has
> finished or if you know a better way?

If you want to know if a thread has finished (without waiting for it)
then this is currently the only direct way. However, if you want to
know if it has finished *the work it was doing* then you might be
better off setting a flag in the thread function and checking that.

Anthony

-- 
Anthony Williams
Author of C++ Concurrency in Action | http://www.manning.com/williams
Custom Software Development | http://www.justsoftwaresolutions.co.uk
Just Software Solutions Ltd, Registered in England, Company Number 5478976.
Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL, UK

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk