[padb-devel] [padb] r151 committed - Replace target_error with a more generic target_data that...
codesite-noreply at google.com
codesite-noreply at google.com
Tue Aug 25 13:24:33 BST 2009
Revision: 151
Author: apittman
Date: Tue Aug 25 05:23:46 2009
Log: Replace target_error with a more generic target_data that
takes not just values and ranges but also namespaces. Replicate
the behaviour before by using the "error" namespace.
http://code.google.com/p/padb/source/detail?r=151
Modified:
/trunk/src/padb
=======================================
--- /trunk/src/padb Tue Aug 25 03:59:14 2009
+++ /trunk/src/padb Tue Aug 25 05:23:46 2009
@@ -3485,14 +3485,15 @@
# sending.
my $mode = $comm_data->{current_req}->{mode};
- if ( defined $d->{target_error} ) {
+ if ( defined $d->{target_data}{error} ) {
printf("Warning: errors reported by some ranks\n========\n");
- foreach my $error ( sort( keys( %{ $d->{target_error} } ) ) ) {
+ foreach my $error ( sort( keys( %{ $d->{target_data}{error} } ) )
) {
printf( "%s: $error\n",
- rng_convert_to_user( $d->{target_error}{$error} ) );
+ rng_convert_to_user( $d->{target_data}{error}{$error} ) );
}
printf("========\n");
}
+
if ( defined( $allfns{$mode}{out_handler} ) ) {
$allfns{$mode}{out_handler}( $conf{mode_options}{$mode}, $d );
} else {
@@ -4393,7 +4394,7 @@
}
my %inner_output;
-my %inner_error;
+my %local_target_data;
sub output {
my ( $vp, $str ) = @_;
@@ -4409,11 +4410,18 @@
# Report a single string error for a given target rank.
sub target_error {
my ( $rank, $error ) = @_;
-
- if ( defined $inner_error{$error} ) {
- rng_add_value( $inner_error{$error}, $rank );
+ target_key_pair( $rank, "error", $error );
+ return;
+}
+
+# Report a single string error for a given target rank.
+sub target_key_pair ($$$) {
+ my ( $rank, $key, $value ) = @_;
+
+ if ( defined $local_target_data{$key}{$value} ) {
+ rng_add_value( $local_target_data{$key}{$value}, $rank );
} else {
- $inner_error{$error} = rng_convert_from_user($rank);
+ $local_target_data{$key}{$value} = rng_convert_from_user($rank);
}
}
@@ -6604,29 +6612,33 @@
$handle->{target_responce}{$tp};
}
}
+
+ # Save any output we've got from this node.
+ foreach my $key ( keys(%inner_output) ) {
+ $handle->{all_replys}->{target_output}{$key} = $inner_output{$key};
+ }
+
+ %inner_output = ();
# Copy the network target errors into responce.
- if ( exists $r->{target_error} ) {
- $handle->{all_replys}->{target_error} = $r->{target_error};
+ if ( exists $r->{target_data} ) {
+ $handle->{all_replys}->{target_data} = $r->{target_data};
}
# Merge in local target responces.
- foreach my $key ( keys(%inner_error) ) {
- if ( defined $handle->{all_replys}->{target_error}{$key} ) {
- rng_merge( $handle->{all_replys}->{target_error}{$key},
- $inner_error{$key} );
- } else {
- $handle->{all_replys}->{target_error}{$key} =
$inner_error{$key};
+ foreach my $key ( keys(%local_target_data) ) {
+ foreach my $value ( keys( %{ $local_target_data{$key} } ) ) {
+ if ( defined
$handle->{all_replys}->{target_data}{$key}{$value} ) {
+ rng_merge(
$handle->{all_replys}->{target_data}{$key}{$value},
+ $local_target_data{$key}{$value} );
+ } else {
+ $handle->{all_replys}->{target_data}{$key}{$value} =
+ $local_target_data{$key}{$value};
+ }
}
}
- # Save any output we've got from this node.
- foreach my $key ( keys(%inner_output) ) {
- $handle->{all_replys}->{target_output}{$key} = $inner_output{$key};
- }
-
- %inner_output = ();
- %inner_error = ();
+ %local_target_data = ();
# If this isn't the last child to signon don't reply up-stream yet.
if ( $handle->{child_replys} != $handle->{children} ) {
@@ -6645,7 +6657,6 @@
$handle->{all_replys} = undef;
$handle->{child_replys} = 0;
$handle->{target_responce} = undef;
- $handle->{target_error} = undef;
}
# Convert from a pid to a command name and do it in a safe manner to avoid
@@ -6933,15 +6944,15 @@
$res->{target_output}{$key} = $inner_output{$key};
}
- if (%inner_error) {
- $res->{target_error} = \%inner_error;
+ if (%local_target_data) {
+ $res->{target_data} = \%local_target_data;
}
reply_to_parent( $netdata, $res );
# Clear down the local inputs.
- %inner_error = ();
%inner_output = ();
+ %local_target_data = ();
$netdata->{target_responce} = undef;
if ( $netdata->{shutdown} ) {
More information about the padb-devel
mailing list