![]() |
Boost : |
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2008-05-12 07:16:06
----- Original Message -----
From: "Anthony Williams" <anthony_w.geo_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Monday, May 12, 2008 12:54 PM
Subject: Re: [boost] [thread] thread_group create_thread template function
> "vicente.botet" <vicente.botet_at_[hidden]> writes:
>
>> the thread_group::create_thread takes a const function0<void> parameter:
>> thread* create_thread(const function0<void>& threadfunc);
>>
>> The function0 implies already a memory allocation. The templated version
>> look like:
>>
>> template <class Threadable>
>> thread* thread_group::create_thread(Threadable threadfunc)
>> {
>> // No scoped_lock required here since the only "shared data"
>> that's
>> // modified here occurs inside add_thread which does scoped_lock.
>> std::auto_ptr<thread> thrd(new thread(threadfunc));
>> add_thread(thrd.get());
>> return thrd.release();
>> }
>>
>> Which works faster because no need to allocate memory for the
>> boost::function0<void()>.
>>
>> Anthony, if there is nothing wrong, could this substitute the
>> create_thread
>> function in next Boost::thread release?
>
> That's a reasonable idea. I'll look at it when I revise thread_group.
Sorry for disturbing you with the thread library. I understand that you are
very busy with the future library
Cheers
Vicente
Boost list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk