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

Comparing AnyEvent-MP/MP/Kernel.pm (file contents):
Revision 1.5 by root, Thu Aug 13 01:16:24 2009 UTC vs.
Revision 1.6 by root, Thu Aug 13 03:34:24 2009 UTC

60our $WARN = sub { 60our $WARN = sub {
61 my $msg = $_[0]; 61 my $msg = $_[0];
62 $msg =~ s/\n$//; 62 $msg =~ s/\n$//;
63 warn "$msg\n"; 63 warn "$msg\n";
64}; 64};
65
66sub load_func($) {
67 my $func = $_[0];
68
69 unless (defined &$func) {
70 my $pkg = $func;
71 do {
72 $pkg =~ s/::[^:]+$//
73 or return sub { die "unable to resolve '$func'" };
74 eval "require $pkg";
75 } until defined &$func;
76 }
77
78 \&$func
79}
65 80
66sub nonce($) { 81sub nonce($) {
67 my $nonce; 82 my $nonce;
68 83
69 if (open my $fh, "</dev/urandom") { 84 if (open my $fh, "</dev/urandom") {
286} 301}
287 302
288sub initialise_node(@) { 303sub initialise_node(@) {
289 my ($noderef, @others) = @_; 304 my ($noderef, @others) = @_;
290 305
291 @others = @{ $AnyEvent::MP::Config::CFG{seeds} } 306 my $profile = defined $noderef ? {} : \%AnyEvent::MP::Config::CFG;
307
308 $noderef = $profile->{noderef}
309 unless defined $noderef;
310
311 @others = @{ $profile->{seeds} }
292 unless @others; 312 unless @others;
293 313
294 if ($noderef =~ /^slave\/(.*)$/) { 314 if ($noderef =~ /^slave\/(.*)$/) {
295 $SLAVE = AE::cv; 315 $SLAVE = AE::cv;
296 my $name = $1; 316 my $name = $1;
342 $_->send (["", iam => $NODE]) 362 $_->send (["", iam => $NODE])
343 for values %NODE; 363 for values %NODE;
344 364
345 $SLAVE = 1; 365 $SLAVE = 1;
346 } 366 }
367
368 (load_func $_)->()
369 for @{ $profile->{services} };
347} 370}
348 371
349############################################################################# 372#############################################################################
350# node moniotirng and info 373# node monitoring and info
351 374
352sub _uniq_nodes { 375sub _uniq_nodes {
353 my %node; 376 my %node;
354 377
355 @node{values %NODE} = values %NODE; 378 @node{values %NODE} = values %NODE;
412 } 435 }
413} 436}
414 437
415############################################################################# 438#############################################################################
416# self node code 439# self node code
417
418sub load_func($) {
419 my $func = $_[0];
420
421 unless (defined &$func) {
422 my $pkg = $func;
423 do {
424 $pkg =~ s/::[^:]+$//
425 or return sub { die "unable to resolve '$func'" };
426 eval "require $pkg";
427 } until defined &$func;
428 }
429
430 \&$func
431}
432 440
433our %node_req = ( 441our %node_req = (
434 # internal services 442 # internal services
435 443
436 # monitoring 444 # monitoring

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines