Do not fail the runner/worker if it fails to write mutants.

This is to be consistent with the previous behavior.
Otherwise when the engine request to mutant a large seed the mutation can keep failing due to shmem being too small, while previously it could do its best-effort to fill as much mutants as possible.

PiperOrigin-RevId: 962853062
diff --git a/centipede/engine_worker.cc b/centipede/engine_worker.cc
index a1febf0..3c95801 100644
--- a/centipede/engine_worker.cc
+++ b/centipede/engine_worker.cc
@@ -639,12 +639,10 @@
     mutant_bytes.clear();
     adapter.SerializeInputContent(adapter.ctx, emitted_inputs[0],
                                   &mutant_bytes_sink);
-    WORKER_CHECK_FOR_ERROR();
-    WorkerCheck(MutationResult::WriteMutant(MutantRef{mutant_bytes, origin},
-                                            *outputs_blobseq),
-                "failed to write mutant");
     adapter.FreeInput(adapter.ctx, emitted_inputs[0]);
     WORKER_CHECK_FOR_ERROR();
+    (void)MutationResult::WriteMutant(MutantRef{mutant_bytes, origin},
+                                      *outputs_blobseq);
   }
 
   for (auto input : origin_inputs) {
diff --git a/centipede/runner.cc b/centipede/runner.cc
index e734e6d..40e4f39 100644
--- a/centipede/runner.cc
+++ b/centipede/runner.cc
@@ -704,13 +704,9 @@
   }
   if (!callbacks.HasCustomMutator()) return EXIT_SUCCESS;
 
-  {
-    bool succ = true;
-    MutateInputs(callbacks, input_refs, num_mutants, [&](MutantRef mutant) {
-      succ = succ && MutationResult::WriteMutant(mutant, outputs_blobseq);
-    });
-    if (!succ) return EXIT_FAILURE;
-  }
+  MutateInputs(callbacks, input_refs, num_mutants, [&](MutantRef mutant) {
+    (void)MutationResult::WriteMutant(mutant, outputs_blobseq);
+  });
 
   return EXIT_SUCCESS;
 }