… | |
… | |
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 | |