Skip to content

Commit

Permalink
deprecated Mojo::Server::Daemon->prepare_ioloop in favor of Mojo::Ser…
Browse files Browse the repository at this point in the history
…ver::Daemon->start
  • Loading branch information
kraih committed Feb 2, 2012
1 parent 83b3b78 commit aec29f5
Show file tree
Hide file tree
Showing 12 changed files with 40 additions and 31 deletions.
4 changes: 3 additions & 1 deletion Changes
@@ -1,6 +1,8 @@
This file documents the revision history for Perl extension Mojolicious.

2.47 2012-02-01 00:00:00
2.47 2012-02-02 00:00:00
- Deprecated Mojo::Server::Daemon->prepare_ioloop in favor of
Mojo::Server::Daemon->start.
- Added EXPERIMENTAL drain event to Mojo::Content.
- Added EXPERIMENTAL drain event to Mojo::Transaction::WebSocket.
- Added EXPERIMENTAL support for RSV1-3 flags to
Expand Down
2 changes: 1 addition & 1 deletion lib/Mojo/Server.pm
Expand Up @@ -157,7 +157,7 @@ Load application from script.
$server->run;
Start server.
Run server.
=head1 SEE ALSO
Expand Down
2 changes: 1 addition & 1 deletion lib/Mojo/Server/CGI.pm
Expand Up @@ -158,7 +158,7 @@ implements the following new ones.
$cgi->run;
Process CGI.
Run CGI.
=head1 SEE ALSO
Expand Down
33 changes: 21 additions & 12 deletions lib/Mojo/Server/Daemon.pm
Expand Up @@ -50,19 +50,22 @@ EOF
shift->inactivity_timeout(@_);
}

# DEPRECATED in Leaf Fluttering In Wind!
sub prepare_ioloop {
my $self = shift;
$self->_listen($_) for @{$self->listen || ['http://*:3000']};
$self->ioloop->max_connections($self->max_clients);
warn <<EOF;
Mojo::Server::Daemon->prepare_ioloop is DEPRECATED in favor of
Mojo::Server::Daemon->start!
EOF
shift->start(@_);
}

# "40 dollars!? This better be the best damn beer ever..
# *drinks beer* You got lucky."
sub run {
my $self = shift;

# Prepare ioloop
$self->prepare_ioloop;
# Start accepting connections
$self->start;

# User and group
$self->setuidgid;
Expand All @@ -81,6 +84,12 @@ sub setuidgid {
return $self;
}

sub start {
my $self = shift;
$self->_listen($_) for @{$self->listen || ['http://*:3000']};
$self->ioloop->max_connections($self->max_clients);
}

sub _build_tx {
my ($self, $id, $c) = @_;

Expand Down Expand Up @@ -462,24 +471,24 @@ allow WebSocket connections to be inactive indefinitely.
L<Mojo::Server::Daemon> inherits all methods from L<Mojo::Server> and
implements the following new ones.
=head2 C<prepare_ioloop>
$daemon->prepare_ioloop;
Prepare loop.
=head2 C<run>
$daemon->run;
Start server.
Run server.
=head2 C<setuidgid>
$daemon->setuidgid;
Set user and group for process.
=head2 C<start>
$daemon->start;
Start accepting connections.
=head1 DEBUGGING
You can set the C<MOJO_DAEMON_DEBUG> environment variable to get some
Expand Down
6 changes: 3 additions & 3 deletions lib/Mojo/Server/Hypnotoad.pm
Expand Up @@ -83,8 +83,8 @@ sub run {
# Initiate hot deployment
$self->_hot_deploy unless $ENV{HYPNOTOAD_PID};

# Prepare loop
$daemon->prepare_ioloop;
# Start accepting connections
$daemon->start;

# Pipe for worker communication
pipe($self->{reader}, $self->{writer})
Expand Down Expand Up @@ -645,7 +645,7 @@ implements the following new ones.
$toad->run('script/myapp', 'hypnotoad.conf');
Start server.
Run server.
=head1 DEBUGGING
Expand Down
4 changes: 2 additions & 2 deletions lib/Mojo/Server/Morbo.pm
Expand Up @@ -115,7 +115,7 @@ sub _spawn {
$daemon->load_app($self->watch->[0]);
$daemon->silent(1) if $ENV{MORBO_REV} > 1;
$daemon->listen($self->listen) if @{$self->listen};
$daemon->prepare_ioloop;
$daemon->start;
my $loop = $daemon->ioloop;
$loop->recurring(
1 => sub { shift->stop if !kill(0, $manager) || $self->{finished} });
Expand Down Expand Up @@ -189,7 +189,7 @@ Check if file has been modified since last check.
$morbo->run('script/myapp');
Start server.
Run server.
=head1 DEBUGGING
Expand Down
2 changes: 1 addition & 1 deletion lib/Mojo/Server/PSGI.pm
Expand Up @@ -127,7 +127,7 @@ implements the following new ones.
my $res = $psgi->run($env);
Start PSGI.
Run PSGI.
=head1 SEE ALSO
Expand Down
3 changes: 1 addition & 2 deletions lib/Mojo/UserAgent.pm
Expand Up @@ -445,8 +445,7 @@ sub _server {
my $port = $self->{port} = $loop->generate_port;
die "Couldn't find a free TCP port for testing.\n" unless $port;
$self->{scheme} = $scheme ||= 'http';
$server->listen(["$scheme://*:$port"]);
$server->prepare_ioloop;
$server->listen(["$scheme://*:$port"])->start;
warn "TEST SERVER STARTED ($scheme://*:$port)\n" if DEBUG;

return $server;
Expand Down
6 changes: 3 additions & 3 deletions lib/Mojolicious/Guides/Cookbook.pod
Expand Up @@ -235,13 +235,13 @@ into alien environments like foreign event loops.
$self->render(text => 'Hello World!');
};

# Connect application with custom daemon
# Connect application with custom daemon and start accepting connections
my $daemon =
Mojo::Server::Daemon->new(app => app, listen => ['http://*:8080']);
$daemon->prepare_ioloop;
$daemon->start;

# Call "one_tick" repeatedly from the alien environment
$daemon->ioloop->one_tick while 1;
Mojo::IOLoop->one_tick while 1;

=head1 REAL-TIME WEB

Expand Down
3 changes: 1 addition & 2 deletions t/mojo/websocket_proxy.t
Expand Up @@ -50,8 +50,7 @@ my $ua = Mojo::UserAgent->new;
my $daemon =
Mojo::Server::Daemon->new(app => app, ioloop => Mojo::IOLoop->singleton);
my $port = Mojo::IOLoop->new->generate_port;
$daemon->listen(["http://*:$port"]);
$daemon->prepare_ioloop;
$daemon->listen(["http://*:$port"])->start;

# Connect proxy server for testing
my $proxy = Mojo::IOLoop->generate_port;
Expand Down
3 changes: 1 addition & 2 deletions t/mojo/websocket_proxy_tls.t
Expand Up @@ -66,8 +66,7 @@ my $daemon =
my $port = Mojo::IOLoop->new->generate_port;
my $listen = "https://*:$port"
. ':t/mojo/certs/server.crt:t/mojo/certs/server.key:t/mojo/certs/ca.crt';
$daemon->listen([$listen]);
$daemon->prepare_ioloop;
$daemon->listen([$listen])->start;

# Connect proxy server for testing
my $proxy = Mojo::IOLoop->generate_port;
Expand Down
3 changes: 2 additions & 1 deletion t/pod_coverage.t
Expand Up @@ -11,7 +11,8 @@ plan skip_all => 'set TEST_POD to enable this test (developer only!)'
my @leaf = (
qw/add_hook comment connect connection_timeout is_done keep_alive_timeout/,
qw/listen max_redirects on_close on_error on_finish on_lock on_process/,
qw/on_read on_unlock port run_hook run_hook_reverse timeout version write/
qw/on_read on_unlock port prepare_ioloop run_hook run_hook_reverse/,
qw/timeout version write/
);

# "Marge, I'm going to miss you so much. And it's not just the sex.
Expand Down

0 comments on commit aec29f5

Please sign in to comment.