- # multiple processes write to the same pipe, so use flock
- # We can't avoid this lock for <=PIPE_BUF writes, either,
- # because those atomic writes can break up >PIPE_BUF ones
- $self->_lock_acquire;
- print $w $str or $err = $!;
- $self->_lock_release;
+ # multiple processes write to the same pipe, so use flock
+ # We can't avoid this lock for <=PIPE_BUF writes, either,
+ # because those atomic writes can break up >PIPE_BUF ones
+ $self->lock_acquire;
+ print $w $str or $err = $!;
+ $self->lock_release;
+
+ die "print failed: $err\n" if $err;
+ } else {
+ $self->begin_txn_lazy;
+ index_skeleton_real($self, $values);
+ }
+}