Skip to content

Commit

Permalink
changed Mojo::IOLoop->client arguments from ($loop, $stream, $err) to…
Browse files Browse the repository at this point in the history
… ($loop, $err, $stream)
  • Loading branch information
kraih committed Dec 16, 2011
1 parent 7122097 commit 0eccdc7
Show file tree
Hide file tree
Showing 23 changed files with 87 additions and 85 deletions.
4 changes: 3 additions & 1 deletion Changes
@@ -1,6 +1,8 @@
This file documents the revision history for Perl extension Mojolicious.

2.38 2011-12-16 00:00:00
2.38 2011-12-17 00:00:00
- Changed Mojo::IOLoop->client arguments from ($loop, $stream, $err)
to ($loop, $err, $stream).
- Improved documentation. (marcus, sri)
- Improved tests.
- Fixed memory leaks caused by named capture groups bug in Perl.
Expand Down
6 changes: 3 additions & 3 deletions examples/connect-proxy.pl
Expand Up @@ -29,9 +29,9 @@
my $server;
$server = Mojo::IOLoop->client(
{address => $address, port => $port} => sub {
my ($loop, $stream, $error) = @_;
if ($error) {
say "Connection error for $address:$port: $error";
my ($loop, $err, $stream) = @_;
if ($err) {
say "Connection error for $address:$port: $err";
Mojo::IOLoop->drop($client);
return delete $c->{$client};
}
Expand Down
14 changes: 7 additions & 7 deletions lib/Mojo/IOLoop.pm
Expand Up @@ -57,13 +57,13 @@ sub client {
$self->stream($stream => $id);

# Connected
$self->$cb($stream);
$self->$cb(undef, $stream);
}
);
$client->on(
error => sub {
my $c = delete $self->{connections}->{$id};
$self->$cb(undef, pop);
$self->$cb(pop);
}
);

Expand All @@ -87,13 +87,13 @@ sub connect {
my $id;
$id = $self->client(
$args => sub {
my ($self, $stream, $error) = @_;
my ($self, $err, $stream) = @_;

my $c = $self->{connections}->{$id};
$c->{$_} = delete($args->{"on_$_"}) || $c->{$_}
for qw/close connect error read/;
if ($error) {
$c->{error}->($self, $id, $error) if $c->{error};
if ($err) {
$c->{error}->($self, $id, $err) if $c->{error};
return;
}

Expand Down Expand Up @@ -481,7 +481,7 @@ Mojo::IOLoop - Minimalistic reactor for non-blocking TCP clients and servers
# Connect to port 3000
my $id = Mojo::IOLoop->client({port => 3000} => sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
$stream->on(read => sub {
my ($stream, $chunk) = @_;
Expand Down Expand Up @@ -622,7 +622,7 @@ L<Mojo::IOLoop::Client/"connect">. Note that this method is EXPERIMENTAL and
might change without warning!
Mojo::IOLoop->client({port => 3000} => sub {
my ($loop, $stream, $error) = @_;
my ($loop, $err, $stream) = @_;
});
=head2 C<defer>
Expand Down
10 changes: 5 additions & 5 deletions lib/Mojo/IOLoop/Client.pm
Expand Up @@ -125,9 +125,9 @@ sub _connecting {
my $handle = $self->{handle};
my $watcher = $self->iowatcher;
if ($self->{tls} && !$handle->connect_SSL) {
my $error = $IO::Socket::SSL::SSL_ERROR;
if ($error == TLS_READ) { $watcher->change($handle, 1, 0) }
elsif ($error == TLS_WRITE) { $watcher->change($handle, 1, 1) }
my $err = $IO::Socket::SSL::SSL_ERROR;
if ($err == TLS_READ) { $watcher->change($handle, 1, 0) }
elsif ($err == TLS_WRITE) { $watcher->change($handle, 1, 1) }
return;
}

Expand Down Expand Up @@ -159,7 +159,7 @@ Mojo::IOLoop::Client - Non-blocking TCP client
...
});
$client->on(error => sub {
my ($client, $error) = @_;
my ($client, $err) = @_;
...
});
$client->connect(address => 'mojolicio.us', port => 80);
Expand All @@ -184,7 +184,7 @@ Emitted safely once the connection is established.
=head2 C<error>
$client->on(error => sub {
my ($client, $error) = @_;
my ($client, $err) = @_;
});
Emitted safely if an error happens on the connection.
Expand Down
6 changes: 3 additions & 3 deletions lib/Mojo/IOLoop/Server.pm
Expand Up @@ -253,9 +253,9 @@ sub _tls {
}

# Switch between reading and writing
my $error = $IO::Socket::SSL::SSL_ERROR;
if ($error == TLS_READ) { $self->iowatcher->change($handle, 1, 0) }
elsif ($error == TLS_WRITE) { $self->iowatcher->change($handle, 1, 1) }
my $err = $IO::Socket::SSL::SSL_ERROR;
if ($err == TLS_READ) { $self->iowatcher->change($handle, 1, 0) }
elsif ($err == TLS_WRITE) { $self->iowatcher->change($handle, 1, 1) }
}

1;
Expand Down
4 changes: 2 additions & 2 deletions lib/Mojo/IOLoop/Stream.pm
Expand Up @@ -186,7 +186,7 @@ Mojo::IOLoop::Stream - Non-blocking I/O stream
...
});
$stream->on(error => sub {
my ($stream, $error) = @_;
my ($stream, $err) = @_;
...
});
Expand Down Expand Up @@ -223,7 +223,7 @@ Emitted safely once all data has been written.
=head2 C<error>
$stream->on(error => sub {
my ($stream, $error) = @_;
my ($stream, $err) = @_;
});
Emitted safely if an error happens on the stream.
Expand Down
2 changes: 1 addition & 1 deletion lib/Mojo/IOWatcher.pm
Expand Up @@ -171,7 +171,7 @@ L<Mojo::IOWatcher> can emit the following events.
=head2 C<error>
$watcher->on(error => sub {
my ($watcher, $error) = @_;
my ($watcher, $err) = @_;
});
Emitted safely if an error happens.
Expand Down
4 changes: 2 additions & 2 deletions lib/Mojo/JSON.pm
Expand Up @@ -407,8 +407,8 @@ L<Mojo::JSON> implements the following attributes.
=head2 C<error>
my $error = $json->error;
$json = $json->error('Oops!');
my $err = $json->error;
$json = $json->error('Oops!');
Parser errors.
Expand Down
4 changes: 2 additions & 2 deletions lib/Mojo/Message.pm
Expand Up @@ -191,8 +191,8 @@ sub error {

# Get
unless (@_) {
return unless my $error = $self->{error};
return wantarray ? @$error : $error->[0];
return unless my $err = $self->{error};
return wantarray ? @$err : $err->[0];
}

# Set
Expand Down
4 changes: 2 additions & 2 deletions lib/Mojo/Server/Daemon.pm
Expand Up @@ -131,8 +131,8 @@ sub _drop {
}

sub _error {
my ($self, $id, $error) = @_;
$self->app->log->error($error);
my ($self, $id, $err) = @_;
$self->app->log->error($err);
$self->_drop($id);
}

Expand Down
16 changes: 8 additions & 8 deletions lib/Mojo/UserAgent.pm
Expand Up @@ -223,10 +223,10 @@ sub _connect {
tls_cert => $self->cert,
tls_key => $self->key,
sub {
my ($loop, $stream, $error) = @_;
my ($loop, $err, $stream) = @_;

# Events
return $self->_error($id, $error) if $error;
return $self->_error($id, $err) if $err;
$self->_events($stream, $id);
$self->_connected($id);
}
Expand Down Expand Up @@ -265,10 +265,10 @@ sub _connect_proxy {
tls_cert => $self->cert,
tls_key => $self->key,
sub {
my ($loop, $stream, $error) = @_;
my ($loop, $err, $stream) = @_;

# Events
return $self->_error($id, $error) if $error;
return $self->_error($id, $err) if $err;
$self->_events($stream, $id);

# Start real transaction
Expand Down Expand Up @@ -326,10 +326,10 @@ sub _drop {
}

sub _error {
my ($self, $id, $error, $log) = @_;
if (my $tx = $self->{connections}->{$id}->{tx}) { $tx->res->error($error) }
$self->log->error($error) if $log;
$self->_handle($id, $error);
my ($self, $id, $err, $log) = @_;
if (my $tx = $self->{connections}->{$id}->{tx}) { $tx->res->error($err) }
$self->log->error($err) if $log;
$self->_handle($id, $err);
}

sub _events {
Expand Down
4 changes: 2 additions & 2 deletions lib/Mojolicious/Plugin/JSONConfig.pm
Expand Up @@ -16,8 +16,8 @@ sub parse {
# Parse
my $json = Mojo::JSON->new;
my $config = $json->decode($content);
my $error = $json->error;
die qq/Couldn't parse config "$file": $error/ if !$config && $error;
my $err = $json->error;
die qq/Couldn't parse config "$file": $err/ if !$config && $err;
die qq/Invalid config "$file"./ if !$config || ref $config ne 'HASH';

return $config;
Expand Down
4 changes: 2 additions & 2 deletions lib/Test/Mojo.pm
Expand Up @@ -335,8 +335,8 @@ sub _request_ok {
# Perform request against application
$self->tx($self->ua->$method($url, %$headers, $body));
local $Test::Builder::Level = $Test::Builder::Level + 2;
my ($error, $code) = $self->tx->error;
Test::More::diag $error if !(my $ok = !$error || $code) && $error;
my ($err, $code) = $self->tx->error;
Test::More::diag $err if !(my $ok = !$err || $code) && $err;
Test::More::ok $ok, encode('UTF-8', "$method $url");

return $self;
Expand Down
4 changes: 2 additions & 2 deletions t/mojo/app.t
Expand Up @@ -70,7 +70,7 @@ my $buffer = '';
my $id;
$id = Mojo::IOLoop->client(
{port => $port} => sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
$stream->on(
read => sub {
my ($stream, $chunk) = @_;
Expand All @@ -93,7 +93,7 @@ like $buffer, qr#HTTP/1.1 100 Continue.*Mojo$#s, 'request was continued';
$buffer = '';
$id = Mojo::IOLoop->client(
{port => $port} => sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
$stream->on(
read => sub {
my ($stream, $chunk) = @_;
Expand Down
10 changes: 5 additions & 5 deletions t/mojo/eventemitter.t
Expand Up @@ -18,8 +18,8 @@ eval { $e->emit('die') };
is $@, "works!\n", 'right error';

# Error fallback
my ($echo, $error);
$e->on(error => sub { $error = pop });
my ($echo, $err);
$e->on(error => sub { $err = pop });
$e->on(test2 => sub { $echo .= 'echo: ' . pop });
$e->on(
test2 => sub {
Expand All @@ -31,14 +31,14 @@ my $cb = sub { $echo .= 'echo2: ' . pop };
$e->on(test2 => $cb);
$e->emit_safe('test2', 'works!');
is $echo, 'echo: works!echo2: works!', 'right echo';
is $error, qq/Event "test2" failed: test2: works!\n/, 'right error';
$echo = $error = undef;
is $err, qq/Event "test2" failed: test2: works!\n/, 'right error';
$echo = $err = undef;
is scalar @{$e->subscribers('test2')}, 3, 'three subscribers';
$e->unsubscribe(test2 => $cb);
is scalar @{$e->subscribers('test2')}, 2, 'two subscribers';
$e->emit_safe('test2', 'works!');
is $echo, 'echo: works!', 'right echo';
is $error, qq/Event "test2" failed: test2: works!\n/, 'right error';
is $err, qq/Event "test2" failed: test2: works!\n/, 'right error';

# Normal event again
$e->emit('test1');
Expand Down
20 changes: 10 additions & 10 deletions t/mojo/ioloop.t
Expand Up @@ -33,16 +33,16 @@ $loop = Mojo::IOLoop->new;
is ref $loop->iowatcher, 'MyWatcher', 'right class';

# Double start
my $error;
my $err;
Mojo::IOLoop->defer(
sub {
eval { Mojo::IOLoop->start };
$error = $@;
$err = $@;
Mojo::IOLoop->stop;
}
);
Mojo::IOLoop->start;
like $error, qr/^Mojo::IOLoop already running/, 'right error';
like $err, qr/^Mojo::IOLoop already running/, 'right error';

# Ticks
my $ticks = 0;
Expand Down Expand Up @@ -140,7 +140,7 @@ my $delay = Mojo::IOLoop->delay;
$delay->begin;
Mojo::IOLoop->client(
{port => $port} => sub {
my ($loop, $stream, $error) = @_;
my ($loop, $err, $stream) = @_;
$delay->end($stream);
$stream->on(close => sub { $buffer .= 'should not happen' });
$stream->on(error => sub { $buffer .= 'should not happen either' });
Expand All @@ -165,7 +165,7 @@ $id = $loop->server({port => $port} => sub { });
my $connected;
$loop->client(
{port => $port} => sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
$loop->drop($id);
$loop->stop;
$connected = 1;
Expand All @@ -175,15 +175,15 @@ like $ENV{MOJO_REUSE}, qr/(?:^|\,)$port\:/, 'file descriptor can be reused';
$loop->start;
unlike $ENV{MOJO_REUSE}, qr/(?:^|\,)$port\:/, 'environment is clean';
ok $connected, 'connected';
$error = undef;
$err = undef;
$loop->client(
(port => $port) => sub {
shift->stop;
$error = pop;
$err = pop;
}
);
$loop->start;
ok $error, 'has error';
ok $err, 'has error';

# Dropped connection
$port = Mojo::IOLoop->generate_port;
Expand All @@ -196,7 +196,7 @@ Mojo::IOLoop->server(
);
$id = Mojo::IOLoop->client(
(port => $port) => sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
$stream->on(close => sub { $client_close++ });
$loop->drop($id);
}
Expand Down Expand Up @@ -237,7 +237,7 @@ Mojo::IOLoop->server(
);
Mojo::IOLoop->client(
{port => $port} => sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
my $drain;
$drain = sub { shift->write('1', $drain) };
$stream->$drain();
Expand Down
6 changes: 3 additions & 3 deletions t/mojo/ioloop_tls.t
Expand Up @@ -52,7 +52,7 @@ $loop->server(
);
$loop->client(
{port => $port, tls => 1} => sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
$stream->write('tset', sub { shift->write('123') });
$stream->on(read => sub { $client .= pop });
}
Expand Down Expand Up @@ -91,7 +91,7 @@ my $id = $loop->client(
tls_cert => 't/mojo/certs/client.crt',
tls_key => 't/mojo/certs/client.key',
sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
$stream->write('tset', sub { shift->write('123') });
$stream->on(close => sub { $client_close++ });
$stream->on(read => sub { $client .= pop });
Expand Down Expand Up @@ -175,7 +175,7 @@ $id = $loop->client(
tls_cert => 't/mojo/certs/client.crt',
tls_key => 't/mojo/certs/client.key',
sub {
my ($loop, $stream) = @_;
my ($loop, $err, $stream) = @_;
$stream->write('tset', sub { shift->write('123') });
$stream->on(close => sub { $client_close++ });
$stream->on(read => sub { $client .= pop });
Expand Down

0 comments on commit 0eccdc7

Please sign in to comment.