X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUser.pm;h=ca73a02ed2ffde0668dd9b4ce7e047a4ce3d3742;hb=5e7031a532b4df6beb475aa3e7e3f6eec29360a6;hp=ff45336f30b6732d765004e1de513c3f6b8ff76f;hpb=b374b13c8eb9a57294e4ef0e2f45163341953f85;p=spider.git diff --git a/perl/DXUser.pm b/perl/DXUser.pm index ff45336f..ca73a02e 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -77,6 +77,9 @@ sub AUTOLOAD $name =~ s/.*:://o; confess "Non-existant field '$AUTOLOAD'" if !$valid{$name}; + # this clever line of code creates a subroutine which takes over from autoload + # from OO Perl - Conway + *{$AUTOLOAD} = sub {@_ > 1 ? $_[0]->{$name} = $_[1] : $_[0]->{$name}} ; if (@_) { $self->{$name} = shift; } @@ -209,9 +212,10 @@ sub put confess "Trying to put nothing!" unless $self && ref $self; my $call = $self->{call}; # delete all instances of this - for ($dbm->get_dup($call)) { - $dbm->del_dup($call, $_); - } +# for ($dbm->get_dup($call)) { +# $dbm->del_dup($call, $_); +# } + $dbm->del($call); delete $self->{annok} if $self->{annok}; delete $self->{dxok} if $self->{dxok}; $dbm->put($call, $self->encode); @@ -255,9 +259,10 @@ sub del my $self = shift; my $call = $self->{call}; # delete all instances of this - for ($dbm->get_dup($call)) { - $dbm->del_dup($call, $_); - } +# for ($dbm->get_dup($call)) { +# $dbm->del_dup($call, $_); +# } + $dbm->del($call); } # @@ -335,7 +340,7 @@ BEGIN { # try to detect a lockfile (this isn't atomic but # should do for now - $lockfn = "$root/perl/cluster.lock"; # lock file name + $lockfn = "$root/perl/cluster.lck"; # lock file name if (-e $lockfn) { open(CLLOCK, "$lockfn") or die "Can't open Lockfile ($lockfn) $!"; my $pid = ;