… | |
… | |
366 | sub mon_nodes($) { |
366 | sub mon_nodes($) { |
367 | my ($cb) = @_; |
367 | my ($cb) = @_; |
368 | |
368 | |
369 | $MON_NODES{$cb+0} = $cb; |
369 | $MON_NODES{$cb+0} = $cb; |
370 | |
370 | |
|
|
371 | defined wantarray |
371 | defined wantarray && Guard::guard { delete $MON_NODES{$cb+0} } |
372 | and Guard::guard { delete $MON_NODES{$cb+0} } |
372 | } |
373 | } |
373 | |
374 | |
374 | sub _inject_nodeevent($$;@) { |
375 | sub _inject_nodeevent($$;@) { |
375 | my ($node, $up, @reason) = @_; |
376 | my ($node, $up, @reason) = @_; |
376 | |
377 | |
… | |
… | |
793 | $LOCAL_MON{$family}{$cb+0} = $cb; |
794 | $LOCAL_MON{$family}{$cb+0} = $cb; |
794 | global_req_add "mon1 $family" => [g_mon1 => $family]; |
795 | global_req_add "mon1 $family" => [g_mon1 => $family]; |
795 | $MON_DB{$family} = {}; |
796 | $MON_DB{$family} = {}; |
796 | } |
797 | } |
797 | |
798 | |
|
|
799 | defined wantarray |
798 | Guard::guard { |
800 | and Guard::guard { |
799 | my $mon = $LOCAL_MON{$family}; |
801 | my $mon = $LOCAL_MON{$family}; |
800 | delete $mon->{$cb+0}; |
802 | delete $mon->{$cb+0}; |
801 | |
803 | |
802 | unless (%$mon) { |
804 | unless (%$mon) { |
803 | global_req_del "mon1 $family"; |
805 | global_req_del "mon1 $family"; |
804 | |
806 | |
805 | # no global_req, because we don't care if we are not connected |
807 | # no global_req, because we don't care if we are not connected |
806 | snd $MASTER, g_mon0 => $family |
808 | snd $MASTER, g_mon0 => $family |
807 | if $MASTER; |
809 | if $MASTER; |
808 | |
810 | |
809 | delete $LOCAL_MON{$family}; |
811 | delete $LOCAL_MON{$family}; |
810 | delete $MON_DB{$family}; |
812 | delete $MON_DB{$family}; |
|
|
813 | } |
811 | } |
814 | } |
812 | } |
|
|
813 | } |
815 | } |
814 | |
816 | |
815 | # full update |
817 | # full update |
816 | $NODE_REQ{g_chg1} = sub { |
818 | $NODE_REQ{g_chg1} = sub { |
817 | my ($f, $ndb) = @_; |
819 | my ($f, $ndb) = @_; |