[cpp-threads] Asynchronous Execution Issues
Peter Dimov
pdimov at mmltd.net
Sat Apr 25 01:11:33 BST 2009
Lawrence Crowl:
> I'm worried about the thread-local variables of the new thread that
> does the work. For instance,
>
> thread_local complicated helper;
>
> auto f = async( []{ return foo( &helper ); } );
> ....
> auto x = f.get();
>
> Running the work in another thread necessarily initializes a helper
> in that thread.
I don't think that it does. This takes the address of this thread's 'helper'
and passes it to the thread executing the lambda. Which is typically a bad
idea and rarely done - it's like passing the address of a private member to
a function outside the class.
More information about the cpp-threads
mailing list