On Wed, 2002-03-27 at 20:40, Ahmed Moustafa wrote: > Chas Owens wrote: > > I wrote some experimental code and it looks like you don't have to reap > > the children (maybe this is just a C thing). > > So, is it OK to fork processes without using waitpid? > > In general, how are the servers (from the fork perspective - > multithreading handling -) implemented in Perl? > <snip />
<snip href="perldoc -f fork"> If you "fork" without ever waiting on your children, you will accumulate zombies. On some systems, you can avoid this by setting "$SIG{CHLD}" to ""IGNORE"". See also the perlipc manpage for more examples of forking and reaping moribund children. </snip> Given the above statement I would first try and see if setting $SIG{CHLD} to 'IGNORE' keeps anything bad from happening. Barring that I would keep a list of all forked children and wait on them during idle time. Another possible solution would be to use the POE modules. I have tried to use the once for a Gtk/Gnome based application that I wanted to be multi-threaded, but ran into errors with the Gnome module (and subsequently found a different way to get around the problem I wanted multi-threading for). I know there was someone on this list with much more experience with POE than I; maybe he will speak up. -- Today is Boomtime the 14th day of Discord in the YOLD 3168 You are what you see. Missile Address: 33:48:3.521N 84:23:34.786W -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]