]> git.p6c8.net - selfforum.git/blob - selfforum-cgi/shared/Lock.pm
CGI::Carp does not block eval errors all the time (bug?)
[selfforum.git] / selfforum-cgi / shared / Lock.pm
1 package Lock;
2
3 ################################################################################
4 # #
5 # File: shared/Lock.pm #
6 # #
7 # Authors: André Malo <nd@o3media.de> #
8 # #
9 # Description: Locking and Filehandle class #
10 # #
11 ################################################################################
12
13 use strict;
14 use vars qw($module);
15
16 use Fcntl;
17
18 ################################################################################
19 #
20 # Version check
21 #
22 # last modified:
23 # $Date$ (GMT)
24 # by $Author$
25 #
26 sub VERSION {(q$Revision$ =~ /([\d.]+)\s*$/)[0] or '0.0'}
27
28 ################################################################################
29 #
30 # load the specific module
31 #
32 BEGIN {
33 local $SIG{__DIE__};
34
35 $module = 'Lock::'.(
36 eval {symlink('',''); 1}
37 ? 'Symlink'
38 : ( eval {O_EXCL}
39 ? 'Exclusive'
40 : 'Unlink'
41 )
42 );
43 }
44 use base (
45 $module,
46 'Lock::API'
47 );
48
49 ################################################################################
50 #
51 # export constants
52 #
53 use constant LH_SHARED => 0;
54 use constant LH_EXCL => 1;
55 use constant LH_EXSH => 2;
56 use constant LH_MASTER => 3;
57
58 use base 'Exporter';
59 @Lock::EXPORT = qw(LH_SHARED LH_EXCL LH_EXSH LH_MASTER);
60
61 # keep require happy
62 1;
63
64 #
65 #
66 ### end of Lock ################################################################

patrick-canterino.de