… | |
… | |
53 | # load modules we will use later anyways |
53 | # load modules we will use later anyways |
54 | use common::sense; |
54 | use common::sense; |
55 | |
55 | |
56 | use Carp (); |
56 | use Carp (); |
57 | |
57 | |
58 | our $VERSION = '0.1'; |
58 | our $VERSION = '0.9'; |
59 | |
59 | |
60 | our $PID; # child pid |
60 | our $PID; # child pid |
61 | our $ENABLED = 1; |
61 | our $ENABLED = 1; |
62 | our $AUTORESTART; # actually exit |
62 | our $AUTORESTART; # actually exit |
63 | our $HEARTBEAT; |
63 | our $HEARTBEAT; |
… | |
… | |
164 | |
164 | |
165 | our %SEEKPOS; |
165 | our %SEEKPOS; |
166 | # due to bugs in perl, try to remember file offsets for all fds, and restore them later |
166 | # due to bugs in perl, try to remember file offsets for all fds, and restore them later |
167 | # (the parser otherwise exhausts the input files) |
167 | # (the parser otherwise exhausts the input files) |
168 | |
168 | |
169 | # this causes perlio to flush it's handles internally, so |
169 | # this causes perlio to flush its handles internally, so |
170 | # seek offsets become correct. |
170 | # seek offsets become correct. |
171 | exec "."; # toi toi toi |
171 | exec "."; # toi toi toi |
172 | #{ |
172 | #{ |
173 | # local $SIG{CHLD} = 'DEFAULT'; |
173 | # local $SIG{CHLD} = 'DEFAULT'; |
174 | # my $pid = fork; |
174 | # my $pid = fork; |
… | |
… | |
178 | # } else { |
178 | # } else { |
179 | # kill 9, $$; |
179 | # kill 9, $$; |
180 | # } |
180 | # } |
181 | #} |
181 | #} |
182 | |
182 | |
183 | # now records all fd positions |
183 | # now record "all" fd positions, assuming 1023 is more than enough. |
184 | for (0 .. 1023) { |
184 | for (0 .. 1023) { |
185 | open my $fh, "<&$_" or next; |
185 | open my $fh, "<&$_" or next; |
186 | $SEEKPOS{$_} = (sysseek $fh, 0, 1 or next); |
186 | $SEEKPOS{$_} = (sysseek $fh, 0, 1 or next); |
187 | } |
187 | } |
188 | |
188 | |