There is nothing wrong with namespace, and these changes generated 1700 lines of
irrelevant diff output making it difficult to compare various revisions of CommonLibs.
runtime (ie, when logging).
The implementation is cludgy. This is because we create threads before main,
as a result of global thread objects (as opposed to pointers to thread objects
that get new'ed and started in main).
A view of the system through strace indicates one or two calls to gettid() per
thread (usually 1, occasionally 2). Changing the read lock in Log() to a write
lock deadlocks.
pthread_self() just returns a pointer to an opaque data structure used by
pthreads, and the other two give information that is useful to relate to top,
ps, etc.
Accidently changed indent in SelfDetect::Exit(). Sorry Michael.
Found as a result of working through bug 1608.