So I had time to look at this last week, it turns out that Mono on the
Mac had an issue not being able to accurately reflect the WaitForExit
and HasExited values. This was causing CC.NET to run out of threads.
However, while chasing this I spent a lot of time refactoring the
ProcessExecutor class and getting rid of the ProcessReader class as it
is a waste of resources and complexity. Instead of spawning another
thread to handle the ouput for standardoutput and standarderror. I now
just use the intended event handler and let the object take care of it
itself. I will be submitting a patch on JIRA later today as I think
this is a better implementation and removes useless code. I also fixed
KillUtil's Kill process which would not actually work on OSX and will
submit the patch for that aas well. The Mono team though has their
issues fixed in 2.0, I am running the RC but the final is due out this
week, so if you are planning on running CC.NET on a mac make sure you
are using 2.0 and you should be golden.