diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-04-24 15:50:19 -0300 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2017-06-29 10:59:07 -0300 |
commit | ccfb2964726512f6669fea99a43afa714e2e6a80 (patch) | |
tree | b78d9541645f66e93bc0c45b6e583210548d4de8 /ChangeLog | |
parent | edc1686af0c0fc2eb535f1d38cdf63c1a5a03675 (diff) | |
download | glibc-ccfb2964726512f6669fea99a43afa714e2e6a80.zip glibc-ccfb2964726512f6669fea99a43afa714e2e6a80.tar.gz glibc-ccfb2964726512f6669fea99a43afa714e2e6a80.tar.bz2 |
posix: Improve default posix_spawn implementation
This patch improves the default posix implementation of posix_spawn{p}
and align with Linux one. The main idea is to fix some issues already
fixed in Linux code, and deprecated vfork internal usage (source of
various bug reports). In a short:
- It moves POSIX_SPAWN_USEVFORK usage and sets it a no-op. Since
the process that actually spawn the new process do not share
memory with parent (with vfork), it fixes BZ#14750 for this
implementation.
- It uses a pipe to correctly obtain the return upon failure
of execution (BZ#18433).
- It correctly enable/disable asynchronous cancellation (checked
on ptl/tst-exec5.c).
- It correctly disable/enable signal handling.
Using this version instead of Linux shows only one regression,
posix/tst-spawn3, because of pipe2 usage which increase total
number of file descriptor.
* sysdeps/posix/spawni.c (__spawni_child): New function.
(__spawni): Rename to __spawnix.
Diffstat (limited to 'ChangeLog')
-rw-r--r-- | ChangeLog | 5 |
1 files changed, 5 insertions, 0 deletions
@@ -1,3 +1,8 @@ +2017-06-29 Adhemerval Zanella <adhemerval.zanella@linaro.org> + + * sysdeps/posix/spawni.c (__spawni_child): New function. + (__spawni): Rename to __spawnix. + 2017-06-29 Florian Weimer <fweimer@redhat.com> * stdio-common/vfprintf.c (group_number): Add front_ptr argument. |