<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Mon, Sep 8, 2014 at 1:13 PM, Greg Clayton <span dir="ltr"><<a href="mailto:gclayton@apple.com" target="_blank">gclayton@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
><br>
> My main concern is that I don't want to expose a generic thread-local class that supports TLS destructors if TLS destructors aren't generic enough to be available on all platforms.  It makes it too easy to make use of them in generic code, breaking other platforms.<br>
<br>
</span>How can you have thread specific data on ANY platform without being able to clean it up? Are we expected to only store integers and POD types in the TLS data? That would surprise me very much if that is the case.</blockquote><div><br></div><div>I can't say Im' familiar with things like libdispatch or many other posix'isms, but I will say that on Windows, you just wouldn't create TLS-data on a thread which you don't own the thread routine for.  And there's also no thread cancellation.  So basically, at least on Windows, you would just always clean up everything at the end of your thread routine.</div></div></div></div>