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.23 by root, Tue Sep 8 01:42:14 2009 UTC vs.
Revision 1.24 by root, Tue Sep 8 01:54:13 2009 UTC

78 $SEEDS{$peer} = $_[0]{remote_node}; 78 $SEEDS{$peer} = $_[0]{remote_node};
79}; 79};
80 80
81push @AnyEvent::MP::Transport::HOOK_DESTROY, sub { 81push @AnyEvent::MP::Transport::HOOK_DESTROY, sub {
82 delete $SEED_CONNECT{$_[0]{local_greeting}{peeraddr}}; 82 delete $SEED_CONNECT{$_[0]{local_greeting}{peeraddr}};
83
84 # check if we contacted ourselves, so nuke this seed
85 if ($_[0]{remote_node} eq $AnyEvent::MP::Kernel::NODE) {
86 $AnyEvent::MP::Kernel::WARN->(0,"avoiding seed $_[0]\n");#d#
87 delete $SEEDS{$_[0]{local_greeting}{peeraddr}};
88 }
83}; 89};
84 90
85sub seed_connect { 91sub seed_connect {
86 my ($seed) = @_; 92 my ($seed) = @_;
87 93
111 117
112 @SEEDS = keys %SEEDS unless @SEEDS; 118 @SEEDS = keys %SEEDS unless @SEEDS;
113 return unless @SEEDS; 119 return unless @SEEDS;
114 120
115 seed_connect splice @SEEDS, rand @SEEDS, 1; 121 seed_connect splice @SEEDS, rand @SEEDS, 1;
116}
117
118sub avoid_seed($) {
119 delete $SEEDS{$_[0]};
120} 122}
121 123
122sub set_seeds(@) { 124sub set_seeds(@) {
123 @SEEDS{@_} = (); 125 @SEEDS{@_} = ();
124 126
355 357
356 # forget about the node 358 # forget about the node
357 delete $addr{$node}; 359 delete $addr{$node};
358 # ask other nodes if they know the node 360 # ask other nodes if they know the node
359 snd $_, find => $node 361 snd $_, find => $node
360 for values %port; 362 for grep $_, map $port{$_}, _route_nodes;
361 } 363 }
362 #warn "node<$node,$is_up>\n";#d# 364 #warn "node<$node,$is_up>\n";#d#
363} 365}
364 366
365mon_node $_, 1 367mon_node $_, 1

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines