From ca6b59974a0f2e24a1d569d118b55c4fc66ff7a3 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Mon, 24 Jun 2019 02:52:45 +0000 Subject: 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. --- lib/PublicInbox/DS.pm | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'lib/PublicInbox/DS.pm') 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 { -- cgit v1.2.3-24-ge0c7