[Mimedefang] defunct defang processes

David F. Skoll dfs at roaringpenguin.com
Tue Mar 8 07:28:01 EST 2005


On Tue, 8 Mar 2005, John Nemeth wrote:

>      If you point me at the code involved in tracking slaves, I may do
> some work on it myself, or I may setup another NetBSD box for you.

See mimedefang-multiplexor.c:

- When a child exits, the SIGCHLD handler "childHandler" is called.

- This function writes a bite to the pipe "Pipe"

- Which should make the other end readable, so in the main event loop,
  "handlePipe" eventually gets called.

- And inside handlePipe, if there are any reaps pending, then
  reapTerminatedSlaves gets called.

The flow is a little confusing because it's all event-driven and
wrapped around a big select() loop.  The only way I can see signals
being missed is if sigprocmask isn't working properly on NetBSD.
There's a small critical section inside handlePipe during which
signals need to be blocked temporarily.

Regards,

David.



More information about the MIMEDefang mailing list