]> git.p6c8.net - selfforum.git/blob - selfforum-cgi/shared/Lock.pm
initializing new version of Lock.pm
[selfforum.git] / selfforum-cgi / shared / Lock.pm
1 package Lock;
2
3 ################################################################################
4 # #
5 # File: shared/Locked.pm #
6 # #
7 # Authors: Andre Malo <nd@o3media.de>, 2001-05-25 #
8 # #
9 # Description: Locking and Filehandle class #
10 # #
11 ################################################################################
12
13 use strict;
14 use vars qw(
15 $VERSION
16 );
17
18 use diagnostics;
19 use vars qw($module);
20
21 use Fcntl;
22
23 ################################################################################
24 #
25 # Version check
26 #
27 $VERSION = do { my @r =(q$Revision$ =~ /\d+/g); sprintf "%d."."%02d" x $#r, @r };
28
29 ################################################################################
30 #
31 # load the specific module
32 #
33 BEGIN {
34 local $SIG{__DIE__};
35
36 $module = 'Lock::'.(
37 eval {symlink('',''); 1}
38 ? 'Symlink'
39 : ( eval {O_EXCL}
40 ? 'Exclusive'
41 : 'Unlink'
42 )
43 );
44 }
45 use base (
46 $module,
47 'Lock::API'
48 );
49
50 ################################################################################
51 #
52 # export constants
53 #
54 use constant LH_SHARED => 0;
55 use constant LH_EXCL => 1;
56 use constant LH_EXSH => 2;
57 use constant LH_MASTER => 3;
58
59 use base 'Exporter';
60 @Lock::EXPORT = qw(LH_SHARED LH_EXCL LH_EXSH LH_MASTER);
61
62 ###############
63 # !!!!!!!!!!!!!!!!!
64 # remove the following later
65 ###############
66 package Locked;
67 use constant LH_SHARED => 0;
68 use constant LH_EXCL => 1;
69 use constant LH_EXSH => 2;
70 use constant LH_MASTER => 3;
71
72 use base 'Exporter';
73 @Locked::EXPORT = qw(LH_SHARED LH_EXCL LH_EXSH LH_MASTER);
74
75 # keep require happy
76 1;
77
78 #
79 #
80 ### end of Lock ################################################################

patrick-canterino.de