diff options
author | Eli Zaretskii <eliz@gnu.org> | 2012-12-08 10:26:36 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2012-12-08 10:26:36 +0000 |
commit | 0d12b1a207a6cce4d87c7023065a37ea035bef44 (patch) | |
tree | e5f5c7cffb9548d88e9ddc698247215f324bc4ea | |
parent | 299f5faf9361abdf896279bb15fbeb565e927592 (diff) | |
download | gunmake-0d12b1a207a6cce4d87c7023065a37ea035bef44.tar.gz |
job.c (create_batch_file): Fix last change: always increment the
counter of batch files before trying to use it.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | job.c | 18 |
2 files changed, 17 insertions, 6 deletions
@@ -1,3 +1,8 @@ +2012-12-08 Eli Zaretskii <eliz@gnu.org> + + * job.c (create_batch_file): Fix last change: always increment the + counter of batch files before trying to use it. + 2012-12-07 Eli Zaretskii <eliz@gnu.org> * job.c (construct_command_argv_internal): Remove " from @@ -273,7 +273,7 @@ create_batch_file (char const *base, int unixy, int *fd) available, while it really isn't. This happens in parallel builds, where Make doesn't wait for one job to finish before it launches the next one. */ - static unsigned uniq = 1; + static unsigned uniq = 0; static int second_loop = 0; const unsigned sizemax = strlen (base) + strlen (ext) + 10; @@ -283,6 +283,16 @@ create_batch_file (char const *base, int unixy, int *fd) path_is_dot = 1; } + ++uniq; + if (uniq >= 0x10000 && !second_loop) + { + /* If we already had 64K batch files in this + process, make a second loop through the numbers, + looking for free slots, i.e. files that were + deleted in the meantime. */ + second_loop = 1; + uniq = 1; + } while (path_size > 0 && path_size + sizemax < sizeof temp_path && !(uniq >= 0x10000 && second_loop)) @@ -309,12 +319,8 @@ create_batch_file (char const *base, int unixy, int *fd) ++uniq; if (uniq == 0x10000 && !second_loop) { - /* If we already had 64K batch files in this - process, make a second loop through the numbers, - looking for free slots, i.e. files that were - deleted in the meantime. */ second_loop = 1; - uniq = 0; + uniq = 1; } } |