summaryrefslogtreecommitdiff
path: root/ChangeLog
diff options
context:
space:
mode:
authorJames Youngman <jay@gnu.org>2008-01-07 01:23:49 +0000
committerJames Youngman <jay@gnu.org>2008-01-07 01:23:49 +0000
commita645751a81de0ee46c4816dbdc7ddf5b0b4187db (patch)
tree0929bbfa781adb89e05a512606ba06dcc6a345dd /ChangeLog
parent4af5f5eed576c4c11b6f4a6d708d94ca87eb249a (diff)
downloadfindutils-a645751a81de0ee46c4816dbdc7ddf5b0b4187db.tar.gz
Reap child processes sooner in order to reduce resource usage
Diffstat (limited to 'ChangeLog')
-rw-r--r--ChangeLog28
1 files changed, 28 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 4e73a227..87444006 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2008-01-07 James Youngman <jay@gnu.org>
+
+ * xargs/xargs.c: (main): Standardise on "Warning" instead of
+ "warning" in messages.
+
+ * xargs/xargs.c: (add_proc): Use x2nrealloc to extend the pids
+ array, rather than doubling the size of the buffer (since the old
+ aproach was vulnerable to overflow).
+
+ Reap all available child processes before every fork. This fixes
+ Savannah bug #21960.
+ * xargs/xargs.c: (proc_max): since this is a non-negative
+ quantity, make it unsigned.
+ (procs_executing): Likewise.
+ (pids_alloc): Likewise (using size_t).
+ (procs_executed): In order to prevent possible overflow, make this
+ a boolean, not a count. We only cared if the previous counter was
+ zero or not, anwyay.
+ (add_proc): Set procs_executed to true rather than incrementing it.
+ (wait_for_proc): When called, always reap all available children.
+ Add an extra argument which is the minimum number of children we
+ must reap before returning.
+ (wait_for_proc_all): Pass the new extra argument.
+ (xargs_do_exec): Call wait_for_proc() to reap all available
+ children before forking a new child. Modify other calls to
+ wait_for_proc to pass the new extra argument.
+ (NEWS): Mention this change.
+
2007-12-20 James Youngman <jay@gnu.org>
* find/fstype.c, find/ftsfind.c, find/parser.c, find/pred.c,