X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUser.pm;h=ad1b890cb7e7bbf34cabb150a3dffcd2fa51fc5a;hb=080a66c38925314321249190eb5a4dc572636d4b;hp=6b1db816665c46f276cb5b3662b8918cc29db299;hpb=654c9b77424b948f88816e0ef28bf4a27331afdb;p=spider.git diff --git a/perl/DXUser.pm b/perl/DXUser.pm index 6b1db816..ad1b890c 100644 --- a/perl/DXUser.pm +++ b/perl/DXUser.pm @@ -19,12 +19,13 @@ use IO::File; use DXDebug; use strict; -use vars qw(%u $dbm $filename %valid $lastoperinterval); +use vars qw(%u $dbm $filename %valid $lastoperinterval $lasttime); %u = (); $dbm = undef; $filename = undef; $lastoperinterval = 30*24*60*60; +$lasttime = 0; # hash of valid elements and a simple prompt %valid = ( @@ -105,6 +106,17 @@ sub init use strict; +# +# periodic processing +# +sub process +{ + if ($main::systime > $lasttime + 15) { + $dbm->sync; + $lasttime = $main::systime; + } +} + # # close the system # @@ -192,7 +204,6 @@ sub put delete $self->{annok} if $self->{annok}; delete $self->{dxok} if $self->{dxok}; $u{$call} = $self->encode(); - $dbm->sync; } # @@ -234,7 +245,6 @@ sub del for ($dbm->get_dup($call)) { $dbm->del_dup($call, $_); } - $dbm->sync; } # @@ -248,6 +258,15 @@ sub close $self->put(); } +# +# sync the database +# + +sub sync +{ + $dbm->sync; +} + # # return a list of valid elements #