Thanks, Kristian and Bryan.
All regression tests passed with jars built with the patch.
Committed revision 1188163.
The machine where I saw that the 15 invocations of splitmessages took 30 seconds, was a four-year-old laptop running Linux.
On various desktops running Solaris I've seen that it takes between 3 and 15 seconds, depending on how powerful the machines are. When changing to fork=no, it's reduced to 0-2 seconds on those machines.
So whereas it's cheaper on the more powerful machines, the cost is still not negligible, even though there are just 15 processes to be started. Bryan, perhaps your experiment ran with processes that were lighter and cheaper to fork than a JVM? Or maybe it was a multi-threaded build system so that other threads could utilize the CPU while one thread was kept up waiting for the forked process to fault in the runtime libraries, or whatever it is that's taking time?