From: Peter Dimov (pdimov_at_[hidden])
Date: 2002-08-06 09:36:43
From: "Pete Becker" <petebecker_at_[hidden]>
> At 08:48 AM 8/6/2002 -0400, Moore, Dave wrote:
> >I think the idea of parameterizing the return value has merit on the
> >"syntactic sugar" side of things, as the user doesn't have to create
> >own boost::function just so they can extract a return value - they can
> >pass simple function pointers.
> Function pointers are a C solution, not a C++ solution.
Well, function objects are a C++ solution.
> Rather than beefing
> up the C solution, I suggest a more object-oriented solution: a class with
> a member function that runs in a separate thread. These have been around
> for years, dating from long before the days of Java:
> class thread
> void start();
> virtual void run() = 0;
> Derived classes can hold whatever data they need. When the thread
> the object's data can be examined to get the result.
The important difference I see is that ~thread() needs to perform an
implicit join, since run() needs to access 'this'.
The current approach makes a copy of the function object, and ~thread
doesn't need to join().
Apart from that:
void join_and_delete(boost::thread * pt)
class oo_thread: noncopyable
pt.reset(new boost::thread(bind(&oo_thread::run, this)),
virtual void run() = 0;
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk