From: "Rob Mueller" <[EMAIL PROTECTED]> Date: Thu, 27 Feb 2003 08:22:09 +1100 [...] In the case of cyrus, I think you can quite happily stick with the multi-process model, I wasn't advocating moving to a threaded model. The discussion started due to an issue with killing child processes. Apparently there are currently race conditions in 'master' that means that a killed child may not be correctly recognised by the 'master' process as a dead child. I commented that I thought a master/forked child idiom had been used in unix for 30 years, and shouldn't there be cookbook solutions for most of these issues? Which started me looking for libraries that might have already done this...
Sigh. It is _not_ a race condition in master. Master is working just fine. The services do not always deal correctly with receiving signals. The process accounting patch for master (which works around the services not always doing the right thing) introduces race conditions, which is one of the reasons why it hasn't been applied. Being able to deal with "kill -9" processes is definitely _not_ a design goal, since kill -9 can leave the mail spool in an arbitrary corrupted state. Larry