From: Eric Wong Date: Mon, 24 Jun 2019 02:52:45 +0000 (+0000) Subject: ds: allow ->write callbacks to syswrite directly X-Git-Tag: v1.2.0~156^2~15 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=ca6b59974a0f2e24a1d569d118b55c4fc66ff7a3;p=public-inbox.git ds: allow ->write callbacks to syswrite directly We can bypass buffering when wbuf is empty when it's called from a CODE reference passed to ->write. --- diff --git a/lib/PublicInbox/DS.pm b/lib/PublicInbox/DS.pm index 2aa9e3d2..0e48ed07 100644 --- a/lib/PublicInbox/DS.pm +++ b/lib/PublicInbox/DS.pm @@ -537,7 +537,8 @@ sub write { my $sock = $self->{sock} or return 1; my $ref = ref $data; my $bref = $ref ? $data : \$data; - if (my $wbuf = $self->{wbuf}) { # already buffering, can't write more... + my $wbuf = $self->{wbuf}; + if ($wbuf && scalar(@$wbuf)) { # already buffering, can't write more... if ($ref eq 'CODE') { push @$wbuf, $bref; } else {