POE-Component-Lightspeed
view release on metacpan or search on metacpan
lib/POE/Component/Lightspeed/Hack/Kernel.pm view on Meta::CPAN
[ $session, \@etc ],
( caller )[1,2],
${ $self->[ KR_ACTIVE_EVENT ] },
time(),
);
} else {
# Enqueue the event for "now", which simulates FIFO in our
# time-ordered queue.
$self->_data_ev_enqueue(
$session, ${ $self->[ KR_ACTIVE_SESSION ] }, $event_name, ET_POST, \@etc,
(caller)[1,2], ${ $self->[ KR_ACTIVE_EVENT ] }, time(),
);
}
# All done!
return 1;
}
sub _lightspeed_post_31 {
my( $self, $fake_session, $dest_session, $event_name, $etc ) = @_;
lib/POE/Component/Lightspeed/Hack/Kernel.pm view on Meta::CPAN
# have a tendency not to abuse them. I discovered in xws that that
# mixing the two types makes it harder than necessary to write
# deterministic programs, but the difficulty can be ameliorated if
# programmers set some base rules and stick to them.
# What should we return?
if (wantarray) {
my @return_value = (
($session == ${ $self->[ KR_ACTIVE_SESSION ] })
? $session->_invoke_state(
$session, $event_name, \@etc, (caller)[1,2],
${ $self->[ KR_ACTIVE_EVENT ] }
)
: $self->_dispatch_event(
$session, ${ $self->[ KR_ACTIVE_SESSION ] },
$event_name, ET_CALL, \@etc,
(caller)[1,2], ${ $self->[ KR_ACTIVE_EVENT ] }, time(), -__LINE__
)
);
$! = 0;
return @return_value;
}
if (defined wantarray) {
my $return_value = (
$session == ${ $self->[ KR_ACTIVE_SESSION ] }
? $session->_invoke_state(
$session, $event_name, \@etc, (caller)[1,2],
${ $self->[ KR_ACTIVE_EVENT ] }
)
: $self->_dispatch_event(
$session, ${ $self->[ KR_ACTIVE_SESSION ] },
$event_name, ET_CALL, \@etc,
(caller)[1,2], ${ $self->[ KR_ACTIVE_EVENT ] }, time(), -__LINE__
)
);
$! = 0;
return $return_value;
}
if ($session == ${ $self->[ KR_ACTIVE_SESSION ] }) {
$session->_invoke_state(
$session, $event_name, \@etc, (caller)[1,2],
${ $self->[ KR_ACTIVE_EVENT ] }
);
}
else {
$self->_dispatch_event(
$session, ${ $self->[ KR_ACTIVE_SESSION ] },
$event_name, ET_CALL, \@etc,
(caller)[1,2], ${ $self->[ KR_ACTIVE_EVENT ] }, time(), -__LINE__
);
}
$! = 0;
return;
}
sub _lightspeed_call_31 {
my( $self, $fake_session, $dest_session, $event_name, $etc ) = @_;
lib/POE/Component/Lightspeed/Introspection.pm view on Meta::CPAN
my $from = [];
$from->[ FROM_KERNEL ] = $heap->{'MYKERNEL'};
# Add the session
$from->[ FROM_SESSION ] = $list[0];
# Add the state
$from->[ FROM_STATE ] = $POE::Kernel::poe_kernel->get_active_event();
# Add the file/line
push( @$from, (caller)[1,2] );
# Is it a local introspection request?
if ( $dest eq $heap->{'MYKERNEL'} or $dest eq '*' ) {
# Send it to the router to emulate a "packet"
$POE::Kernel::poe_kernel->post(
$POE::Component::Lightspeed::Router::SES_ALIAS,
'ACTION_' . ACTION_INTROSPECTION,
[
$heap->{'MYKERNEL'}, # MSG_TO
$heap->{'MYKERNEL'}, # MSG_FROM
lib/POE/Component/Lightspeed/Introspection.pm view on Meta::CPAN
my @list = $POE::Kernel::poe_kernel->alias_list( $POE::Kernel::poe_kernel->get_active_session() );
if ( ! defined $list[0] ) {
$list[0] = $POE::Kernel::poe_kernel->get_active_session()->ID;
}
$from->[ FROM_SESSION ] = $list[0];
# Add the state
$from->[ FROM_STATE ] = $POE::Kernel::poe_kernel->get_active_event();
# Add the file/line
push( @$from, (caller)[1,2] );
# Is it a local introspection request?
if ( POE::Component::Lightspeed::Router::FindOurself( $heap->{'MYKERNEL'}, $dest->[ DEST_KERNEL ] ) ) {
# Send it to the router to emulate a "packet"
$POE::Kernel::poe_kernel->post(
$POE::Component::Lightspeed::Router::SES_ALIAS,
'ACTION_' . ACTION_INTROSPECTION,
[
$heap->{'MYKERNEL'}, # MSG_TO
$heap->{'MYKERNEL'}, # MSG_FROM
( run in 1.087 second using v1.01-cache-2.11-cpan-a3c8064c92c )