The mutex arrangement in TclInitSubsystems() seems
to suffer from a significant flaw. Consider two threads,
A and B, calling the routine concurrently. Thread A gets
the lock first, sets subsystemsInitialized to 1 and starts
calling the set of subsystem initializing routines.
Meanwhile thread B makes the initial test
(subsystemsInitialized == 0) and since thread A
has already set it to 1, thread B jumps straight
to the bottom of TIS() and calls TclInitNotifier().
The trouble is when B calls TclInitNotifier(), we
have no idea how much of Tcl library initialization
is actually done. We just know it got started.