]> Sergey Matveev's repositories - public-inbox.git/blobdiff - lib/PublicInbox/DS.pm
ds: ->write must not clobber empty wbuf array
[public-inbox.git] / lib / PublicInbox / DS.pm
index 4947192f8e4d604f1c1563595890326b8b31b174..08f4e9e8a3389937d9dde1fad0d1e50d687e4202 100644 (file)
@@ -505,7 +505,10 @@ sub write {
             return $self->close;
         }
         my $tmpio = tmpio($self, $bref, $written) or return 0;
-        $self->{wbuf} = [ $tmpio ];
+
+        # wbuf may be an empty array if we're being called inside
+        # ->flush_write via CODE bref:
+        push @{$self->{wbuf} ||= []}, $tmpio;
         watch($self, EPOLLOUT|EPOLLONESHOT);
         return 0;
     }