In very obscure situations we may write the free token back to the pipe.
authorPaul Smith <psmith@gnu.org>
Mon, 14 Nov 2011 00:18:38 +0000 (00:18 +0000)
committerPaul Smith <psmith@gnu.org>
Mon, 14 Nov 2011 00:18:38 +0000 (00:18 +0000)
Don't do that.  I couldn't come up with a repro case for this!

ChangeLog
main.c

index 52724d1..8655847 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,8 +1,11 @@
 2011-11-13  Paul Smith  <psmith@gnu.org>
 
+       * main.c (clean_jobserver): Don't write the free token to the pipe.
+       Change suggested by Tim Newsome <tnewsome@aristanetworks.com>
+
        * acinclude.m4 (AC_STRUCT_ST_MTIM_NSEC): Add support for Darwin.
-       Patch provided by Troy Runkel <Troy.Runkel@mathworks.com>
        * filedef.h (FILE_TIMESTAMP_STAT_MODTIME): Ditto.
+       Patch provided by Troy Runkel <Troy.Runkel@mathworks.com>
 
 2011-09-18  Paul Smith  <psmith@gnu.org>
 
diff --git a/main.c b/main.c
index 75eb494..d260859 100644 (file)
--- a/main.c
+++ b/main.c
@@ -3116,7 +3116,8 @@ clean_jobserver (int status)
                "INTERNAL: Exiting with %u jobserver tokens (should be 0)!",
                jobserver_tokens);
       else
-        while (jobserver_tokens--)
+        /* Don't write back the "free" token */
+        while (--jobserver_tokens)
           {
             int r;