boost::thread is quite simple component, just start your code in debugger and see where it fails. What's the point to guess if you don't provide details
Yeah, nothing like adding in a debugger to change the race conditions and hide your bugs.
c'mon, you're overreacting. The man have either exception or deadlock, try it few times in debugger to maybe catch the exception; in case of deadlock is more simple, start it as is, when it frezes, attach the debugger and dissect. Run through valgrind if the bug is soooooo elusive. Anyway you should have some data on hand, it's act of desperation to ask what might have changed in boost::thread during few last *years*.
If there's one word I would *not* use in reference to anything multi-threaded, it's "simple".
Not going to dispute about it, but I meant 'simple' in regard to the fact, that boost::thread is a little wrapper around pthread functionality (in pthread case). The source code is not as hard to comprehend as in some other boost parts ;) -- Slava