Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-08-30 07:08:16


From: "William Kempf" <williamkempf_at_[hidden]>
> As of yesterday I checked in the proposed implementation, including the
> documentation. The documentation was also posted to this list a week or
so
> ago when this thread started. But to answer the questions, calls to a
> thread objects that are non-joinable (default constructed thread objects
and
> thread objects that have already been "joined") result in undefined
> behavior, and is a programmatic error.

Why the stricter requirement of undefined behavior for subsequent joins? Why
not simply 'no effect'?

Is boost::thread thread safe? IOW are calls to boost::thread::join
serialized?

What happens when two threads simultaneously call x.join()?

[Analysis:

case 1: access not serialized. Undefined behavior.
case 2: access serialized. Undefined behavior (second join.)
case 3: access serialized, subsequent joimns have no effect. Well defined
behavior. Both threads join x.]

--
Peter Dimov
Multi Media Ltd.

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