Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
do not leak the watcher either
  • Loading branch information
kraih committed Nov 4, 2014
1 parent 536fb2e commit c4b8cb8
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions lib/Mojo/IOLoop/Client.pm
Expand Up @@ -48,14 +48,16 @@ sub connect {

# Non-blocking name resolution
$address =~ s/[\[\]]//g;
my $handle = $self->{resolver}
my $handle = $self->{dns}
= $DNS->getaddrinfo($address, _port($args), {protocol => IPPROTO_TCP});
$reactor->io(
$handle => sub {
shift->remove(my $handle = delete $self->{resolver});
my $reactor = shift;

my ($err, @res) = $DNS->get_result($handle);
$reactor->remove($self->{dns});
my ($err, @res) = $DNS->get_result(delete $self->{dns});
return $self->emit(error => "Can't resolve: $err") if $err;

$args->{addr_info} = \@res;
$self->_connect($args);
}
Expand All @@ -65,8 +67,8 @@ sub connect {
sub _cleanup {
my $self = shift;
return $self unless my $reactor = $self->reactor;
$self->{$_} && $reactor->remove(delete $self->{$_}) for qw(timer handle);
$DNS->timedout($self->{resolver}) if $self->{resolver};
$DNS->timedout($self->{dns}) if $self->{dns};
$self->{$_} && $reactor->remove(delete $self->{$_}) for qw(dns timer handle);
return $self;
}

Expand Down

0 comments on commit c4b8cb8

Please sign in to comment.