This is a hairy one. In the previous revision, there was a race between a call to Thread::id() and the static destruction of the Mutex. As far as I know, that could only happen if id() is called from a destructor. I suspect ~PerThreadBufferedStreamBuf -> sync() -> id(). id() used to win the race, but the upgrade to boost::thread 1.35 changed the order.
This is a hairy one. In the previous revision, there was a race between a call
to Thread::id() and the static destruction of the Mutex. As far as I know, that
could only happen if id() is called from a destructor. I suspect
~PerThreadBufferedStreamBuf -> sync() -> id(). id() used to win the race, but
the upgrade to boost::thread 1.35 changed the order.

Technically, this change causes a leak- ~Mutex is never called. For pthread's
mutex, I don't think this matters, since it's leaked at program termination.
For win32, I'm not sure.


AveRapina/visionworkbench,DougFirErickson/visionworkbench,AveRapina/visionworkbench,DougFirErickson/visionworkbench,DougFirErickson/visionworkbench,fengzhyuan/visionworkbench,fengzhyuan/visionworkbench,AveRapina/visionworkbench,DougFirErickson/visionworkbench,AveRapina/visionworkbench,fengzhyuan/visionworkbench,AveRapina/visionworkbench,fengzhyuan/visionworkbench,AveRapina/visionworkbench,DougFirErickson/visionworkbench,fengzhyuan/visionworkbench,fengzhyuan/visionworkbench,fengzhyuan/visionworkbench,DougFirErickson/visionworkbench