
Amit <contact.lipik@gmail.com> writes:
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?
You need to define BOOST_THREAD_USE_LIB when you build the static library. It should work if you're using MSVC as the backend for ICL.
Apart from this, the library appears to work fine for my use cases (tss, shared & exclusive mutex).
Excellent. 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