> On Thu, 2003-08-28 at 09:00, Geurt Vos wrote: > > > > > > > [ this is about whether <threading>single or <threading>multi ] > > > > [ should be the default jam option for building boost. Single ] > > > > [ is currently the default ] > > > > > > (**) I think I want to hear one or two other opinions > before we decide > > > this decision was wrong. People seemed pretty well > convinced it was > > > right once upon a time. > > > > > > > I think the decision was wrong. I think neither makes > > sense as default. I mean, it depends on the application > > whether single or multi threading is required. So why > > not build single _and_ multi threaded libs. Just like > > the default build results in 'debug' and 'release' libs. > > > I disagree. Most applications are single threaded and it takes a very > conscious choice and a lot of thought to go multi threaded. You have to > set compiler flags for MT, you have to link against special versions of > the standard C libs. You have to remember that most implementations of > the standard C++ libs are not thread safe in the sense they do not use > mutexes. You also have to remember to use re-entrant versions of > functions. These are not things that can or should be defaulted IMHO. > > MT also has a cost in both space and time. One that is completely > unnecessary for single threaded programs. >
Agreed. Still, this doesn't imply you shouldn't _also_ provide multi-threaded libs by default. I mean, what is it to you if there's libboost_filesystem_mt.a, libboost_regex_mt.so, etc. for multi threading, while you can simply use -lboost_regex when linking your single threaded application? > It is neither a gotcha nor surprising that the default boost build is > single threaded even though boost has a threads library. My Linux box > comes with pthreads and my Windows box has threads but the default > builds on both are single threaded. > > I suspect that only someone new to threads would be surprised by this > and it should probably be in the threads FAQ. > The default build is single threaded, while there's also by default a Boost.Threads build, which is at least partially useless, because I can't use it together with boost libraries that require linking. Now that surprises me... Geurt _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost