Boost logo

Boost :

From: Peter Dimov (pdimov_at_[hidden])
Date: 2001-06-30 11:09:22


From: "Peter Dimov" <pdimov_at_[hidden]>

[Replying to myself... What's next? A dedicated mailing list just for me?
:-) ]

> So my point is that a good implementation of thread::ref can directly
> compete with the 'layer 1' noncopyable thread object and be an order of
> magnitude more efficient than 'layer 2' shared_ptr<thread>, while at the
> same time being more user-friendly.

Reality check.

The above is true with regard to thread-related resources, but it ignores
the problem with the lifetime of the arbitrary function object that is
passed to thread::create.

A design with

thread::ref thread::create(void (*) (void *), void *);

plus the corresponding helpers for managing the parameter passing and
dealing with different function signatures still has the properties outlined
above.

A design that takes boost::function0<void>, sadly, does not, as far as I can
see. Someone has to manage the function object, and the logical place to put
it is in the noncopyable thread.

--
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