Constification.  All regression tests pass.
Portability fix.  Threads do not default to joinable everywhere.
Add an interlock to the scheduler so dispatches wait on an open slot.

All regression tests pass.
Duh. Forgot to make the thread pool sdynamically allocated.
Duh, again.  Finish dynamicizing the thread pool.
Removing the instrumentation would be good, too.  All regression tests pass.
Explain the new scheduler logic.
More informative variable name.
Unsuppress a fatal error message.
Prevent hangups due to flaky thread-signalling implementations.
Give up on condition signaling in favor of a simple delay.

Either pthreads condition variables are flaky in my environment or I
can't figure them out.  The program was sporadically hanging - just
infrequently enoughly tomake me believe several times that I had
solved the problem.  Screw it - simpler code is better.
Take my own advice about time programming...
Appease Coverity.  All regression tests pass.
Expose USE_MMAP.  All regression tests pass.