386 |
} elsif ( $data->{ping} ) { |
} elsif ( $data->{ping} ) { |
387 |
my $port = $data->{port}; |
my $port = $data->{port}; |
388 |
delete( $info->{pending}->{$port} ) if $info->{pending}->{$port} eq 'forked'; |
delete( $info->{pending}->{$port} ) if $info->{pending}->{$port} eq 'forked'; |
389 |
$session->{port}->{ $data->{port} } = $sock; |
$session->{port}->{$port} = $sock; |
390 |
|
foreach my $name ( keys %{$data->{proc}} ) { |
391 |
|
if ( $name eq 'loadavg' ) { |
392 |
|
$info->{proc}->{$port}->{loadavg} = [ split(/\s+/, $data->{proc}->{$name}) ]; |
393 |
|
} else { |
394 |
|
foreach my $line ( split(/\n/,$data->{proc}->{$name}) ) { |
395 |
|
my ($n,$v) = split(/:\s+/,$line); |
396 |
|
$info->{proc}->{$port}->{$n} = $v; |
397 |
|
} |
398 |
|
} |
399 |
|
} |
400 |
} elsif ( defined $data->{load} && $data->{load} eq 'shard' ) { |
} elsif ( defined $data->{load} && $data->{load} eq 'shard' ) { |
401 |
if ( my $path = shift @shard_load_queue ) { |
if ( my $path = shift @shard_load_queue ) { |
402 |
$info->{shard}->{$path} = 'read'; |
$info->{shard}->{$path} = 'read'; |