Author: spadkins Date: Fri Feb 1 08:22:37 2013 New Revision: 15568 Modified: p5ee/trunk/App-Context/lib/App/Context/POE/ClusterNode.pm p5ee/trunk/App-Context/lib/App/Context/POE/Server.pm Log: Update maintains accuracy in the num_async_event internal counters (both general and node / destination specific) when an event is canceled or aborted. Modified: p5ee/trunk/App-Context/lib/App/Context/POE/ClusterNode.pm ============================================================================== --- p5ee/trunk/App-Context/lib/App/Context/POE/ClusterNode.pm (original) +++ p5ee/trunk/App-Context/lib/App/Context/POE/ClusterNode.pm Fri Feb 1 08:22:37 2013 @@ -261,6 +261,7 @@ } ### Remove from pending + $self->{num_async_events}--; delete $self->{running_async_event}{$pid}; $self->log({level=>3},"poe_cancel_async_event FOUND RUNNING event_token=[$event_token] pid=[$pid]\n"); Modified: p5ee/trunk/App-Context/lib/App/Context/POE/Server.pm ============================================================================== --- p5ee/trunk/App-Context/lib/App/Context/POE/Server.pm (original) +++ p5ee/trunk/App-Context/lib/App/Context/POE/Server.pm Fri Feb 1 08:22:37 2013 @@ -797,7 +797,10 @@ my $pending_async_events = $self->{pending_async_events}; my $async_event = $running_async_event->{$runtime_event_token}; if ($async_event) { + my ($event, $callback_event) = @$async_event; + my $destination = $event->{destination} || "local"; $self->{num_async_events}--; + $self->{node}{$destination}{num_async_events}--; delete $self->{running_async_event}{$runtime_event_token}; $self->_abort_running_async_event($runtime_event_token, @$async_event); }