
Anthony Williams <anthony_w.geo <at> yahoo.com> writes:
tss_cleanup_implemented() doesn't do anything itself: it is a placeholder. If the library defines it (e.g. for MSVC on Windows, and for POSIX platforms) then thread_specific_ptr values are automatically cleaned up on thread exit. If the library doesn't define it, the user must define it for TSS to work, and the user takes responsibility for ensuring that all TSS variables are correctly cleaned up. Ah-ha. Thanks for clearing this up - I had assumed tss_cleanup_implemented was actually supposed to do something. Now, is is expected that this is implemented for MSVC, but not for ICL on Win32? They are supposed to be generate compatible code. Maybe it is a consequence of some boost configuration define not being set for ICL? Or maybe I missed somthing when building the thread lib - I built it manually from the IDE (static version). Is there a #define set by bjam that controls whether tss_cleanup_implemented is implemented in the library?
Apart from this, the library appears to work fine for my use cases (tss, shared & exclusive mutex). Many thanks Amit