The unified diff between revisions [9b09f962..] and [7d6f1f74..] is displayed below. It can also be downloaded as a raw diff.

#
#
# patch "on_the_fly.py"
#  from [92f24cea06bdafa8ca0793431548d6bbee0fee36]
#    to [d811ac67ff4a3b23b948e8e7deaa50a3b3b9de3a]
#
============================================================
--- on_the_fly.py	92f24cea06bdafa8ca0793431548d6bbee0fee36
+++ on_the_fly.py	d811ac67ff4a3b23b948e8e7deaa50a3b3b9de3a
@@ -8,7 +8,7 @@ from popen2 import Popen3
 from os import environ, fork, WEXITSTATUS, WIFSIGNALED, WIFEXITED, WTERMSIG
 import os
 from popen2 import Popen3
-from signal import SIGTERM, SIGKILL
+from signal import SIGTERM, SIGKILL, SIGCHLD, signal
 from time import sleep

 from basic_io import basic_io_parser
@@ -167,6 +167,8 @@ def cert_leaf_revs(db, graph, frontier,

     for i in range(revs_per_ns):
         cert_leaf_rev(db, graph, frontier, parent_deps)
+        if not len(frontier):
+            break

 def serve(db, branch):

@@ -207,6 +209,13 @@ def serve_pull(serve_db, pull_db):

     os.kill(pid, SIGKILL)

+    # mmm. zombies.
+    while True:
+        try:
+            os.waitpid(-1, os.WNOHANG)
+        except OSError:
+            break
+
 def fresh_db(db):
     monotone(db, "db init")