Merge from vendor branch mlg:
authorexplorer <explorer>
Fri, 12 Nov 1999 20:27:17 +0000 (20:27 +0000)
committerexplorer <explorer>
Fri, 12 Nov 1999 20:27:17 +0000 (20:27 +0000)
commit0ac5d97af6e12a16ad619eb79b4de02bdd1d914e
tree073cb911de5b07fd1bde5098c6d89aacd4a45e62
parent2166ae511fc5a5879ec090c0901a6703d711b680
parent214e7df0f345f818cb349fdc5268898042820abc
Merge from vendor branch mlg:
Import unproven-pthreads, the mit-pthreads based cleanup I'm hacking on.

Why am I using MIT-Pthreads?  Because all the alternatives seem to have
very low level problems.  PTL2 has a locking problem of some sort that I
cannot track down, and the author insists that

lock = PTHREAD_MUTEX_INIT;

is always to be legal, so he uses a pointer for locks.  This means
pthread_lock() can break in out of memory situations, and therefore so
can pthread_once(), and if you're using that to protect logging, and you
need to report a memory depletion, you're screwed.

--Michael