Sat, 17 Jan 2009 16:02:12 +0000 (UTC), dsimcha wrote:

> == Quote from Sergey Gromov ([email protected])'s article
>> Sat, 17 Jan 2009 05:17:29 +0000 (UTC), dsimcha wrote:
>>> Using D2's builtin thread-local storage, is there a way to get all instances
>>> (one per thread) of a given thread-local variable?  If not, can anyone
>>> recommend any workarounds, given that:
>>>
>>> 1.  Each instance of this variable is not written to after initialization,
>>> i.e. not more than once during the execution of the program.
>>> 2.  I must be able to tell instances created by threads that are still alive
>>> from those created by dead threads.  This rules out simply appending the
>>> values to an array.
>> I wonder if struct destructor is called if you put it in TLS and thread
>> dies.  Then you could use RAII to remove irrelevant data from the
>> 'simple array'.
> 
> No, it isn't.  Just tried it.

OTOH, if you can gain access to the data, it's not thread-local anymore.
Simply put your data synchronously into a global array when it's ready,
and synchronously remove it when a thread dies.  You can use scope() or
RAII in your thread function for that.

Reply via email to