diff options
author | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-08-30 19:34:27 +0000 |
---|---|---|
committer | nobody <nobody@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-08-30 19:34:27 +0000 |
commit | 03154c9a5b9e8628d31bd9032549327d51304645 (patch) | |
tree | f4f85e04edaef6ed998a7953275ad3dcf1911fef /bin/Process_Unix.pm | |
parent | 73efbc1d2ad02533d865e1b14008ffc8d8bc82fb (diff) | |
download | ATCD-pre_multiple_profile_server.tar.gz |
This commit was manufactured by cvs2svn to create tagpre_multiple_profile_server
'pre_multiple_profile_server'.
Diffstat (limited to 'bin/Process_Unix.pm')
-rw-r--r-- | bin/Process_Unix.pm | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/bin/Process_Unix.pm b/bin/Process_Unix.pm deleted file mode 100644 index af1041616ea..00000000000 --- a/bin/Process_Unix.pm +++ /dev/null @@ -1,73 +0,0 @@ -# $Id$ -package Process; - -use POSIX "sys_wait_h"; - -sub Create -{ - my $name = shift; - my $args = shift; - my $self = []; - - FORK: - { - if ($self->[0] = fork) - { - #parent here - bless $self; - } - elsif (defined $self->[0]) - { - #child here - exec $name." ".$args; - die "ERROR: exec failed for <$name> <$args>"; - } - elsif ($! =~ /No more process/) - { - #EAGAIN, supposedly recoverable fork error - sleep 5; - redo FORK; - } - else - { - # weird fork error - print STDERR "ERROR: Can't fork: $!\n"; - } - } -} - -sub Terminate -{ - my $self = shift; - kill ('TERM', $self->[0]); - # print STDERR "Process_Unix::Kill 'TERM' $self->[0]\n"; -} - -sub Kill -{ - my $self = shift; - kill ('KILL', $self->[0]); - # print STDERR "Process_Unix::Kill 'TERM' $self->[0]\n"; -} - -sub Wait -{ - my $self = shift; - waitpid ($self->[0], 0); -} - -sub TimedWait -{ - my $self = shift; - my $maxtime = shift; - while ($maxtime-- != 0) { - my $pid = waitpid ($self->[0], &WNOHANG); - if ($pid != 0 && $? != -1) { - return $?; - } - sleep 1; - } - return -1; -} - -1; |