There was a bunch of shed-painting about this before the 0.7.1 release, and I promised to tidy up the code, so:
Initialize the OutputDebugStringF mutex and file pointer using boost::call_once, to be thread-safe.
Make the return value of OutputDebugStringF really be the number of characters written (*printf() semantics).
Declare the fReopenDebugLog flag volatile, since it is changed from a signal handler.
And don't declare OutputDebugStringF() as inline.