Hi,
Well, that worked, it has now actually created the ascii order file, and gone much further. Now it is stopping/doing nothing here
open(SENDMAIL, '|/usr/sbin/sendmail -oi -t')
or (unlink ($outfile),
diehtml("Can't fork for sendmail: $!\n"));
So, .... it looks like the moral to this story is replace ALL open() with sysopen(), using the parameters and examples as supplied, to fix the locking example.
If I used this code as a template for all the file opens
my $got_lock;
use Fcntl; # to get constants for O_CREAT | O_EXCL | O_RDWR
for ( 0 .. 5 ) {
if ( sysopen(my $fh, "$base_dir/.lock", O_CREAT | O_EXCL | O_RDWR,
+ 0600) ) {
$got_lock = 1;
close $fh;
last;
}
sleep 2;
}
diehtml("Lock error $!\n") unless $got_lock;
.... would I need the 'sleep', and what does the FOR contruct do ? Does it try for 6 times ?? Please pardon my ignorance, I'm _very_ much a novice at Perl. :)
Thanks,
Peter
|