Change the threading semantics of --parallel in the test suite to use a Queue.
Change the threading semantics of --parallel in the test suite to use
a Queue.

Formerly, we spawned a thread for each test case which forks a
subprocess for the test case.  Communication between workers and the
master happened via an unsynchronized list; and the master did a lot
of sleeping.

Instead, we make a synchronized Queue containing the test numbers,
fork off 5 threads from the get-go, and have the threads fetch numbers
from the queue.  The parent just starts the children and joins them;
no extra sleep(0.2) necessary, and almost everything is thread-safe.
(I did not fix the fact that the children do a popen/wait instead of a
waitpid, and thus may end up wait()ing on the wrong child and thus
getting the wrong result; it's unclear if there is a way to do this
that works on Windows before Python 2.4.)

* subversion/tests/cmdline/svntest/main.py
  (): Import Queue (which was around in Python 2.0, don't worry).
  (spawn_process): Even in verbose mode, no need to print out commands
   which are running the suite itself from helper threads.
  (TestSpawningThread): Complete rewrite of SpawnTest; see above for
   explanation.
  (_internal_run_tests): Rewrite parallel section; see above.

jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion,jmckaskill/subversion