Subject: | Feature - optionally don't setsid after fork in POE::Wheel::Run |
I don't always want the processes a POE::Wheel::Run instance is interacting with to have their own process group; since setsid() is useful in most cases I've left it as the default but provided a 'NoSetSid' option to the constructor with prevents it doing so; the patch is attached.
*** /usr/local/lib/perl5/site_perl/5.8.0/POE/Wheel/Run.pm Thu Apr 3 05:01:56 2003
--- Run.pm Wed Sep 10 15:26:01 2003
***************
*** 189,194 ****
--- 189,196 ----
my $error_event = delete $params{ErrorEvent};
my $close_event = delete $params{CloseEvent};
+ my $no_setsid = delete $params{NoSetSid};
+
# Make sure the user didn't pass in parameters we're not aware of.
if (scalar keys %params) {
carp( "unknown parameters in $type constructor call: ",
***************
*** 249,255 ****
# Become a new unix session.
# Program 19.3, APITUE. W. Richard Stevens built my hot rod.
! eval 'setsid()';
# Open the slave side of the pty.
$stdin_read = $stdout_write = $stderr_write = $stdin_write->slave();
--- 251,257 ----
# Become a new unix session.
# Program 19.3, APITUE. W. Richard Stevens built my hot rod.
! eval 'setsid()' unless $no_setsid;
# Open the slave side of the pty.
$stdin_read = $stdout_write = $stderr_write = $stdin_write->slave();