- my ($self, $len, $msgref, $artnum, $object_id) = @_;
- my $w = $self->{w};
- print $w "$len $artnum $object_id\n", $$msgref or die
- "failed to write partition $!\n";
- $w->flush or die "failed to flush: $!\n";
+ my ($self, $bytes, $msgref, $artnum, $oid, $mid0, $mime) = @_;
+ if (my $w = $self->{w}) {
+ print $w "$bytes $artnum $oid $mid0\n", $$msgref or die
+ "failed to write partition $!\n";
+ $w->flush or die "failed to flush: $!\n";
+ } else {
+ $$msgref = undef;
+ $self->begin_txn_lazy;
+ $self->add_message($mime, $bytes, $artnum, $oid, $mid0);
+ }