diff options
author | ivan <ivan> | 2004-09-15 08:45:07 +0000 |
---|---|---|
committer | ivan <ivan> | 2004-09-15 08:45:07 +0000 |
commit | af3329906ebacf09d5cc5af39e103adc42d4cbff (patch) | |
tree | c98011df62a0c64e361efaa8aaedb7135f97faa1 | |
parent | d19afb848fd2faeaf9f1eb8c5568877209fbfbfa (diff) |
obtain a new descriptor for the lock in kids, this should fix locking problems
-rw-r--r-- | fs_selfservice/FS-SelfService/freeside-selfservice-clientd | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs_selfservice/FS-SelfService/freeside-selfservice-clientd b/fs_selfservice/FS-SelfService/freeside-selfservice-clientd index 5a058381d..ededfa6e9 100644 --- a/fs_selfservice/FS-SelfService/freeside-selfservice-clientd +++ b/fs_selfservice/FS-SelfService/freeside-selfservice-clientd @@ -43,6 +43,7 @@ $SIG{__WARN__} = \&_logmsg; warn "Creating $lock_file\n" if $Debug; open(LOCKFILE,">$lock_file") or die "can't open $lock_file: $!"; +close LOCKFILE; warn "Creating $socket\n" if $Debug; my $uaddr = sockaddr_un($socket); @@ -256,6 +257,9 @@ sub lock_write { #broken on freebsd? #flock(STDOUT, LOCK_EX) or die "FATAL: can't lock write stream: $!"; + #open a new one for each kid to get a unique lock + open(LOCKFILE,">$lock_file") or die "can't open $lock_file: $!"; + flock(LOCKFILE, LOCK_EX) or die "FATAL: can't lock $lock_file: $!"; } |