ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-MP/MP/Global.pm
(Generate patch)

Comparing AnyEvent-MP/MP/Global.pm (file contents):
Revision 1.66 by root, Sat Mar 24 00:48:53 2012 UTC vs.
Revision 1.67 by root, Sat Mar 24 01:00:28 2012 UTC

179 snd $SRCNODE, g_reply => $id, [values %{ $GLOBAL_DB{$family} } ]; 179 snd $SRCNODE, g_reply => $id, [values %{ $GLOBAL_DB{$family} } ];
180}; 180};
181 181
182# monitoring 182# monitoring
183 183
184sub g_slave_disconnect($) { 184sub g_disconnect($) {
185 my ($node) = @_; 185 my ($node) = @_;
186 186
187 g_clr $node; 187 g_clr $node;
188 188
189 if (my $mon = delete $GLOBAL_SLAVE{$node}) { 189 if (my $mon = delete $GLOBAL_SLAVE{$node}) {
220db_mon "'g" => sub { 220db_mon "'g" => sub {
221 keepalive_add $_ for @{ $_[1] }; 221 keepalive_add $_ for @{ $_[1] };
222 keepalive_del $_ for @{ $_[3] }; 222 keepalive_del $_ for @{ $_[3] };
223}; 223};
224 224
225# delete slaves on node-down 225# delete data from other nodes on node-down
226# clear slave db on node-down
227mon_nodes sub { 226mon_nodes sub {
228 g_slave_disconnect $_[0] unless $_[1]; 227 g_disconnect $_[0] unless $_[1];
229}; 228};
230 229
231# tell everybody who connects that we are a global node 230# tell everybody who connects that we are a global node
232push @AnyEvent::MP::Transport::HOOK_GREET, sub { 231push @AnyEvent::MP::Transport::HOOK_GREET, sub {
233 $_[0]{local_greeting}{global} = 1; 232 $_[0]{local_greeting}{global} = 1;
275 g_global_connect $_->{id}; 274 g_global_connect $_->{id};
276 } 275 }
277} 276}
278 277
279$NODE_REQ{g_global} = sub { 278$NODE_REQ{g_global} = sub {
280 g_slave_disconnect $SRCNODE; 279 g_disconnect $SRCNODE;
281 280
282 my $node = $NODE{$SRCNODE}; 281 my $node = $NODE{$SRCNODE};
283 $node->{transport}{remote_greeting}{global} = 1; 282 $node->{transport}{remote_greeting}{global} = 1;
284 283
285 g_global_connect $SRCNODE; 284 g_global_connect $SRCNODE;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines