|
Boost : |
From: Anthony Williams (anthony_w.geo_at_[hidden])
Date: 2008-05-12 06:54:18
"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.
Anthony
-- Anthony Williams | Just Software Solutions Ltd Custom Software Development | http://www.justsoftwaresolutions.co.uk Registered in England, Company Number 5478976. Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk