in reply to To fork() or not to fork()

Uhm, what's the difference? If you don't use fork() explicitely, how do you start the three parts? If you do a system "daemon &", you are forking too, except that's handled by perl instead of your code.

I also read something about having to kill the children every so often and re-spawn it again, otherwise no memory would be freed.
If you have a memory leak and what to cope with that by restarting the daemon, does it matter that you used explicite forks or not? If they leak, they leak, and you have to fix that (by either fixing your code, or restarting the daemon (exec $0 => @ARGV)), regardless how the daemons were started.

I think the interesting question is "do we run as 3 different processes/LWPs/threads at let the kernel sceduler do our context switches" or "do we run as a single process/LWP/thread and do our own sceduling". Both have advantages and disadvantages.

Abigail