]>
git.p6c8.net - selfforum.git/blob - selfforum-cgi/shared/Lock/Symlink.pm
3 ################################################################################
5 # File: shared/Lock/Symlink.pm #
7 # Authors: André Malo <nd@o3media.de> #
9 # Description: Locking and Filehandle class #
12 ################################################################################
17 ################################################################################
25 sub VERSION
{(q
$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
27 ### _simple_lock () ############################################################
32 # Params: $filename - file to lock
35 # Return: success (boolean)
40 symlink $self->filename, $fh->filename and return 1;
45 ### _simple_unlock () ##########################################################
50 # Params: $filename - lockfile name
53 # Return: success (boolean)
56 my ($self, $filename) = @_;
58 return 1 if (!-l
$filename or unlink $filename);
60 # not able to unlink symlink, hmmm...
65 ### _reftime () ################################################################
67 # determine reference time for violent unlock
71 # Return: time or zero, if no reference file found
75 my ($time, $reffile) = 0;
77 if (-f
($reffile = $self -> filename
)) {
78 $time = (stat $reffile)[9];}
80 elsif (-l
($reffile = $self -> lockfile
)) {
81 $time = (lstat $reffile)[9];}
86 ### masterlocked () ############################################################
88 # check on master lock status of the file
92 # Return: status (boolean)
94 sub masterlocked
{-l
shift -> masterlock
}
96 ### excl_announced () ##########################################################
98 # check on exclusive lock announced status of the file
102 # Return: status (boolean)
104 sub excl_announced
{-l
shift -> lockfile
}
106 ### exsh_announced () ##########################################################
108 # check on exclusive shared lock status of the file
112 # Return: status (boolean)
114 sub exsh_announced
{-l
shift -> exshlock
}
116 ### purge () ###################################################################
118 # cover our traces after a file was removed
128 # keep 'require' happy
133 ### end of Lock::Symlink #######################################################
patrick-canterino.de