# OPEN THE LOCK FILE my $LCK = "$lock_path/dblock.lockfile"; sysopen(DBLOCK, $LCK, O_RDONLY | O_CREAT) or die divert("Couldn't open $LCK (lock_database_for_writing): $!"); # ATTEMPT TO LOCK THE LOCK FILE eval { local $SIG{ALRM} = sub { die "TIMEDOUT" }; alarm(30); flock(DBLOCK, LOCK_EX) or die divert("Couldn't LOCK_EX $LCK (lock_database_for_writing): $!"); alarm(0); }; if ($@) { if( $@ =~ /TIMEDOUT/ ) { divert("Connection too busy. Error: $!"); } }