Boost logo

Boost :

From: Michael Glassford (glassfordm_at_[hidden])
Date: 2004-07-16 10:50:02


I've made some changes to the Boost.Threads static linking support on
Win32. Previously I had added back support for static linking, but
without thread-specific storage classes. Now I've added the
thread-specific storage classes back in, and exposed two functions that
need to be called at the appropriate time:

The function on_thread_exit() should be called when a thread exists, *in
the context of the exiting thread*. The function on_process_exit()
should be called when the process exit. If these functions are not
called at the appropriate time, leaks may occur. If you know you don't
need tss cleanup, of course you can just omit to call these functions.

In addition, Boost.Threads static library on Win32 requires the user of
the library to define a function called tss_cleanup_implemented(); if it
is not defined, a link error results. The only purpose of this function
is as a "link-time assertion": the linker error stating that the
function is missing warns the the user of the necessity of calling the
cleanup functions. In addition, if Boost.Threads later implements tss
cleanup in the static library, the linker's duplicate symbol error
should warn the user that their custom implementation is no longer needed.

Comments?

Mike


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk