Remember how I said I assumed the forking code was fine? Well, I grabbed your latest code posting, and to my surprise, it wouldn't run! After some more debugging (looks like I'm reading more code than I'm writing lately) I think I've found a contention issue (not really sure)...anywho:
else
{
#i'm the parent!
warn "(Parent) I'm the parent\n";
#who connected?
warn "(Parent) Connecton recieved ... ",$connection>peerhost,"\n";
#close the connection, the parent has already passed
# it off to a child.
warn "(Parent) Closing connection\n";
sleep 3;
$connection->close();
}
Those extra
warn statements lead me to believe that the parent was closing the
$connection before the child got to call
play_songs hence the
sleep call. I chose "3" randomly, but it works fine now, and the sleep doesn't affect any of the logic or flow.
Brainiac