X-Git-Url: http://www.dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXCluster.pm;h=3269073aedc75c6e87936b544ccf916f291fe542;hb=171a7a0bf86e9732a33c7829e808129ec01c51c2;hp=2ddd2358648f28616c2c8f2f197bce61303e9d4a;hpb=7432cb12ce865030c8b0315a30764e0088a59102;p=spider.git diff --git a/perl/DXCluster.pm b/perl/DXCluster.pm index 2ddd2358..3269073a 100644 --- a/perl/DXCluster.pm +++ b/perl/DXCluster.pm @@ -122,7 +122,9 @@ package DXNodeuser; use DXDebug; use strict; -my $users = 0; +use vars qw($users); + +$users = 0; sub new { @@ -135,6 +137,7 @@ sub new $node->{list}->{$call} = $self; # add this user to the list on this node $users++; dbg('cluster', "allocating user $call to $node->{call} in cluster\n"); + $node->update_users; return $self; } @@ -143,10 +146,11 @@ sub del my $self = shift; my $call = $self->{call}; my $node = $self->{mynode}; - + delete $node->{list}->{$call}; delete $DXCluster::cluster{$call}; # remove me from the cluster table dbg('cluster', "deleting user $call from $node->{call} in cluster\n"); + $node->update_users; $users-- if $users > 0; } @@ -168,13 +172,15 @@ package DXNode; use DXDebug; use strict; -my $nodes = 0; +use vars qw($nodes); + +$nodes = 0; sub new { my ($pkg, $dxchan, $call, $confmode, $here, $pcversion) = @_; my $self = $pkg->alloc($dxchan, $call, $confmode, $here); - $self->{version} = $pcversion; + $self->{pcversion} = $pcversion; $self->{list} = { } ; $nodes++; dbg('cluster', "allocating node $call to cluster\n"); @@ -202,6 +208,7 @@ sub del foreach $ref (values %{$self->{list}}) { $ref->del(); # this also takes them out of this list } + delete $DXCluster::cluster{$call}; # remove me from the cluster table dbg('cluster', "deleting node $call from cluster\n"); $nodes-- if $nodes > 0; } @@ -209,10 +216,11 @@ sub del sub update_users { my $self = shift; - if (%{$self->{list}}) { - $self->{users} = scalar %{$self->{list}}; + my $count = shift; + if ((keys %{$self->{list}})) { + $self->{users} = (keys %{$self->{list}}); } else { - $self->{users} = shift; + $self->{users} = $count; } }