Now you may wonder why Perl ithreads didn't use fork()? Wouldn't that have made a lot more sense? Well, I wasn't involved in the thread design process at the time, so I have no idea what the exact reasons were.
Hysterical raisins--surprisingly good ones, but still
hysterical raisins. ithreads were originally developed
to emulate fork(1) on Windows, which doesn't have
such a call; thus, they couldn't be built on
Besides, as your forks module demonstrates,
most of the speed wins of using fork(1) on
systems that have it would be lost in the interthread
communications. The general consensus seems to be that
you should use ithreads in code with a lot of
interthread communications, a magic open (or
such) in code with a little communication, and a raw
fork in code with very little communcation.
There is no sig.