It looks like your FIFO is only used for the child to speak to the parent. Would a regular pipe serve better? It would be faster.
There may be a lot more to do to make this work with your real application, particularly if there is to be more than one connection at a time. In that case, the parent will need to listen on the socket and several pipes at once.while (my $connection = $listen_socket->accept) { my ($pid, $line, $in, $out); pipe $in, $out or die $!; if ($pid = fork) { close($out); warn localtime(time), " Connection recieved ... ", $connection->peerhost, $/; $connection->close(); # microsleep till the kid's awake do { select undef, undef, undef,.001} until kill 0, $pid; + while(<$in>){$_ =~ s/a-z/A-Z/i;print $_;} close($in); } elsif (defined $pid){ close($in); $listen_socket->close; while(<$connection>){print $out $_;}; close($out); exit 0; } else { die "Error while forking: $@" unless defined $pid; } }
After Compline,
Zaxo
In reply to Re: multiple processes
by Zaxo
in thread multiple processes
by Mirage
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |