Boost logo

Boost :

From: Greg Colvin (gcolvin_at_[hidden])
Date: 2001-06-30 14:28:14

From: Peter Dimov <pdimov_at_[hidden]>
> 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.

One could just copy it around as part of the ref object.

Boost list run by bdawes at, gregod at, cpdaniel at, john at