user/dev discussion of public-inbox itself
 help / color / Atom feed
From: Eric Wong <e@yhbt.net>
To: meta@public-inbox.org
Subject: [PATCH 5/9] searchidxshard: rely on autoflush instead of ->flush
Date: Sun,  2 Feb 2020 06:52:18 +0000
Message-ID: <20200202065222.14966-6-e@yhbt.net> (raw)
In-Reply-To: <20200202065222.14966-1-e@yhbt.net>

It reduces the number of ops and simplifies the code, slightly.
Add a missing IO::Handle import while we're at it, to be
explicit about which methods we use.
---
 lib/PublicInbox/SearchIdxShard.pm | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lib/PublicInbox/SearchIdxShard.pm b/lib/PublicInbox/SearchIdxShard.pm
index b22e51dc..0522ecea 100644
--- a/lib/PublicInbox/SearchIdxShard.pm
+++ b/lib/PublicInbox/SearchIdxShard.pm
@@ -7,6 +7,7 @@ package PublicInbox::SearchIdxShard;
 use strict;
 use warnings;
 use base qw(PublicInbox::SearchIdx);
+use IO::Handle (); # autoflush
 
 sub new {
 	my ($class, $v2writable, $shard) = @_;
@@ -24,6 +25,7 @@ sub spawn_worker {
 	pipe($r, $w) or die "pipe failed: $!\n";
 	binmode $r, ':raw';
 	binmode $w, ':raw';
+	$w->autoflush(1);
 	my $pid = fork;
 	defined $pid or die "fork failed: $!\n";
 	if ($pid == 0) {
@@ -83,7 +85,6 @@ sub index_raw {
 	if (my $w = $self->{w}) {
 		print $w "$bytes $artnum $oid $mid0\n", $$msgref or die
 			"failed to write shard $!\n";
-		$w->flush or die "failed to flush: $!\n";
 	} else {
 		$$msgref = undef;
 		$self->begin_txn_lazy;
@@ -100,7 +101,6 @@ sub remote_barrier {
 	my ($self) = @_;
 	if (my $w = $self->{w}) {
 		print $w "barrier\n" or die "failed to print: $!";
-		$w->flush or die "failed to flush: $!";
 	} else {
 		$self->commit_txn_lazy;
 	}

  parent reply index

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-02  6:52 [PATCH 0/9] convert: more fixes and tests Eric Wong
2020-02-02  6:52 ` [PATCH 1/9] t/multi-mid.t: extra test for -convert highwater mark Eric Wong
2020-02-02  6:52 ` [PATCH 2/9] v2writable: nproc_shards: subtract 1 from given value Eric Wong
2020-02-02  6:52 ` [PATCH 3/9] v2writable: do not clobber {shards} or {parallel} if unset Eric Wong
2020-02-02  6:52 ` [PATCH 4/9] convert: remove unused variables capturing :from Eric Wong
2020-02-02  6:52 ` Eric Wong [this message]
2020-02-02  6:52 ` [PATCH 6/9] convert: shift @ARGV explicitly Eric Wong
2020-02-02  6:52 ` [PATCH 7/9] convert: fix --no-index switch Eric Wong
2020-02-02  6:52 ` [PATCH 8/9] doc: -convert: document switches Eric Wong
2020-02-02  6:52 ` [PATCH 9/9] v2writable: more ways to detect online CPU count Eric Wong

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://public-inbox.org/README

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200202065222.14966-6-e@yhbt.net \
    --to=e@yhbt.net \
    --cc=meta@public-inbox.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

user/dev discussion of public-inbox itself

Archives are clonable:
	git clone --mirror http://public-inbox.org/meta
	git clone --mirror http://czquwvybam4bgbro.onion/meta
	git clone --mirror http://hjrcffqmbrq6wope.onion/meta
	git clone --mirror http://ou63pmih66umazou.onion/meta

Example config snippet for mirrors

Newsgroups are available over NNTP:
	nntp://news.public-inbox.org/inbox.comp.mail.public-inbox.meta
	nntp://ou63pmih66umazou.onion/inbox.comp.mail.public-inbox.meta
	nntp://czquwvybam4bgbro.onion/inbox.comp.mail.public-inbox.meta
	nntp://hjrcffqmbrq6wope.onion/inbox.comp.mail.public-inbox.meta
	nntp://news.gmane.io/gmane.mail.public-inbox.general

 note: .onion URLs require Tor: https://www.torproject.org/

AGPL code for this site: git clone https://public-inbox.org/public-inbox.git