In article <[EMAIL PROTECTED]>, David Abrahams wrote: > "Neal D. Becker" <[EMAIL PROTECTED]> writes: > >> On Saturday 23 August 2003 07:18 am, John Maddock wrote: >>> > One more thing: what exactly can go wrong with 1.30.0 if >>> > -pthread isn't used? Is it boost specific or a general thing >>> > (e.g. issues w/ respect to libstdc++)? >>> >>> A general thing - without this then: >>> >>> Your std lib is not thread safe. >>> Your C lib is not thread safe. >>> g++ will not emit thread safe exception handling code. >>> >>> Thus while for C programs enabling thread support is just a question of >>> linking to the right libraries, for C++ you also need to ensure that the >>> compiler "knows" that you want thread safe code. >>> >> >> You mean I can't just run bjam with no options and get the libs built with >> thread support? I need to add a command-line option? > > The libraries that require thread support will be built with thread > support. The others will not, unless <threading>multi has been placed > in their default-build settings; <threading>single is the global > default.
I recently ran into this trying to use shared_ptr in a mulithreaded app. The docs might be somewhat incomplete with regard to this. e.g. http://boost.org/more/download.html#Installation "preparing to use Boost in a development project is relatively straightforward. Most boost libraries are implemented entirely within their header files. The only preparation for their use is to add the boost root directory to your compiler's list of #include<...> search paths." http://www.boost.org/libs/smart_ptr/shared_ptr.htm#ThreadSafety "shared_ptr uses Boost.Config to detect whether the implementation supports threads. If your program is single-threaded, but your platform is autodetected by Boost.Config as supporting multiple threads, #define BOOST_DISABLE_THREADS to eliminate the thread safety overhead." It wasn't immediately clear to me how to ensure that the linux app I am writing will always use the threadsafe version of shared_ptr (my app requires pthreads), no matter how/if the user configured boost. What I ended up doing was verifying pthread support at install time, and then defining BOOST_HAS_PTHREADS. Steve _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost