+
+ if ($self->{sock}) {
+ # autovivify wbuf
+ my $new_size = push(@{$self->{wbuf}}, \&getline_pull);
+
+ # wbuf may be populated by {chunked,identity}_write()
+ # above, no need to rearm if so:
+ $self->requeue if $new_size == 1;
+ return; # likely
+ }
+ } elsif ($@) {
+ warn "response ->getline error: $@";
+ $self->close;
+ }
+ # avoid recursion
+ if (delete $self->{forward}) {
+ eval { $forward->close };
+ if ($@) {
+ warn "response ->close error: $@";
+ $self->close; # idempotent
+ }
+ }
+ response_done($self, delete $self->{alive});