We may need to rely on cleanup code running in enqueued
callbacks, so ensure we call it when flush_write happens.
sub flush_write ($) {
my ($self) = @_;
my $wbuf = $self->{wbuf} or return 1;
sub flush_write ($) {
my ($self) = @_;
my $wbuf = $self->{wbuf} or return 1;
- my $sock = $self->{sock} or return 1;
+ my $sock = $self->{sock};
next_buf:
while (my $bref = $wbuf->[0]) {
if (ref($bref) ne 'CODE') {
my $off = delete($self->{wbuf_off}) // 0;
next_buf:
while (my $bref = $wbuf->[0]) {
if (ref($bref) ne 'CODE') {
my $off = delete($self->{wbuf_off}) // 0;
my $w = psendfile($sock, $bref, \$off);
if (defined $w) {
if ($w == 0) {
my $w = psendfile($sock, $bref, \$off);
if (defined $w) {
if ($w == 0) {