]>
git.p6c8.net - selfforum.git/blob - selfforum-cgi/shared/Lock/Symlink.pm
3 ################################################################################
5 # File: shared/Lock/Symlink.pm #
7 # Authors: Andre Malo <nd@o3media.de>, 2001-05-25 #
9 # Description: Locking and Filehandle class #
12 ################################################################################
21 ################################################################################
25 $VERSION = do { my @r =(q
$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x
$#r, @r };
27 ### sub _simple_lock ###########################################################
32 # Params: $filename - file to lock
35 # Return: success (boolean)
40 symlink $self->filename, $fh->filename and return 1;
45 ### sub _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 ### sub _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 ### sub masterlocked ###########################################################
88 # check on master lock status of the file
92 # Return: status (boolean)
94 sub masterlocked
{-l
shift -> masterlock
}
96 ### sub excl_announced #########################################################
98 # check on exclusive lock announced status of the file
102 # Return: status (boolean)
104 sub excl_announced
{-l
shift -> lockfile
}
106 ### sub exsh_announced #########################################################
108 # check on exclusive shared lock status of the file
112 # Return: status (boolean)
114 sub exsh_announced
{-l
shift -> exshlock
}
116 # keep 'require' happy
121 ### end of Lock::Symlink #######################################################
patrick-canterino.de