diff options
Diffstat (limited to 'lib/PublicInbox/SearchIdxSkeleton.pm')
-rw-r--r-- | lib/PublicInbox/SearchIdxSkeleton.pm | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/PublicInbox/SearchIdxSkeleton.pm b/lib/PublicInbox/SearchIdxSkeleton.pm index beb17b9f..51a88fda 100644 --- a/lib/PublicInbox/SearchIdxSkeleton.pm +++ b/lib/PublicInbox/SearchIdxSkeleton.pm @@ -149,9 +149,12 @@ sub index_skeleton_real ($$) { # write to the subprocess sub barrier_init { my ($self, $nparts) = @_; - my $w = $_[0]->{w}; - print $w "barrier_init $nparts\n" or die "failed to write: $!"; - $w->flush or die "failed to flush: $!"; + my $w = $self->{w}; + my $err; + $self->_lock_acquire; + print $w "barrier_init $nparts\n" or $err = "failed to write: $!\n"; + $self->_lock_release; + die $err if $err; } sub barrier_wait { |