App-Context
view release on metacpan or search on metacpan
lib/App/Context/Server.pm view on Meta::CPAN
}
}
&App::sub_exit($async_event) if ($App::trace);
return($async_event);
}
sub abort_running_async_event {
&App::sub_entry if ($App::trace);
my ($self, $runtime_event_token) = @_;
my $running_async_event = $self->{running_async_event};
my $pending_async_events = $self->{pending_async_events};
my $async_event = $running_async_event->{$runtime_event_token};
if ($async_event) {
$self->{num_async_events}--;
delete $self->{running_async_event}{$runtime_event_token};
unshift(@$pending_async_events, $async_event);
$self->_abort_running_async_event($runtime_event_token, @$async_event);
}
&App::sub_exit($async_event) if ($App::trace);
return($async_event);
}
# $runtime_event_tokens take the following forms:
# $runtime_event_token = $pid; -- App::Context::Server::send_async_event_now() and ::finish_pid()
sub _abort_running_async_event {
&App::sub_entry if ($App::trace);
my ($self, $runtime_event_token, $event, $callback_event) = @_;
if ($runtime_event_token =~ /^[0-9]+$/) {
kill(15, $runtime_event_token);
}
else {
$self->log("Unable to abort running async event [$runtime_event_token]\n");
}
&App::sub_exit() if ($App::trace);
}
#############################################################################
# user()
#############################################################################
=head2 user()
The user() method returns the username of the authenticated user.
The special name, "guest", refers to the unauthenticated (anonymous) user.
* Signature: $username = $context->user();
* Param: void
* Return: string
* Throws: <none>
* Since: 0.01
Sample Usage:
$username = $context->user();
=cut
sub user {
&App::sub_entry if ($App::trace);
my $self = shift;
my $user = $self->{user} || getlogin || (getpwuid($<))[0] || "guest";
&App::sub_exit($user) if ($App::trace);
$user;
}
1;
( run in 1.552 second using v1.01-cache-2.11-cpan-f56aa216473 )