hush/libbb
Stephen Heumann 468751ba5f Switch the vfork implementation to use procrecvtim() for waiting, and not signal the parent from the child.
This avoids a problem where one of the SIGALRM signals could be delivered after the original SIGALRM handler was restored, which would normally cause the process to terminate.

For now, we just rely on polling in a loop to determine when the child is done. This isn't optimal, but should be OK. If procsend() worked, we could use that in the child to signal the parent. However, procsend() is broken in GNO 2.0.6 -- it seems that it actually tries to invoke the send() call for sockets, but with the wrong arguments, leading to a crash.
2014-12-01 21:05:13 -06:00
..
appletlib.c Use alternative code (also from BusyBox) for checking if the user is in a group, avoiding a call to getgroups(), which isn't supported. 2014-11-04 16:24:41 -06:00
bb.basename.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
bb.qsort.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
bb.strtonum.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
cmp.str.array.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
conc.pathfile.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
endofname.c move endofname() to libbb 2013-02-26 00:36:53 +01:00
error.retval.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
escape.seq.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
exec.gno.c Minor cleanup in execve. 2014-11-22 22:57:59 -06:00
full.write.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
get.exec.path.c Use prefix 9 instead of 1 to get the executable path, to avoid a length limitation. 2014-11-08 12:26:36 -06:00
get.line.c Changes to handle the use of \r as newline on the IIgs. 2014-11-08 19:58:11 -06:00
getopt32.c Fixes to get libbb/getopt32.c to compile. 2014-11-03 12:58:57 -06:00
last.char.is.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
lineedit.c Change some stack-allocated arrays in libbb/lineedit.c to be dynamically allocated. 2014-11-20 18:34:52 -06:00
llist.c main: free suid_config list after use 2011-05-16 12:21:31 +02:00
mempcpy.c Minimal changes to enable hush-only builds on OS X 2014-10-26 21:14:47 -05:00
messages.c Add code to get the path of the current executable, which we need to re-execute the shell. 2014-11-07 23:06:34 -06:00
parse.mode.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
perror.msg.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
pgrp.c Fix our handling of process groups for job control, working around a couple GNO bugs. 2014-11-21 23:05:38 -06:00
platform.c Fix the implementation of vasprintf to work with ORCA/C's varargs implementation. Also, shrink the stack-allocated buffer in it. 2014-11-03 16:08:43 -06:00
poll.c Add an implementation of poll() written in terms of select(), to work around the lack of poll() on GNO. 2014-11-03 12:26:43 -06:00
printable.str.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
read.c
read.key.c Add basic support for getting input escape sequences from termcap. 2014-11-12 23:25:01 -06:00
s.gethostname.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
safe.poll.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
safe.strncpy.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
safe.write.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
signal.names.c Change libbb/signal.names.c to use C89-style constructs for ORCA/C compatibility. 2014-11-02 23:15:17 -06:00
signals.c Change various uses of signal masks to use 32-bit values (previously half the signals were essentially cut off). 2014-11-25 17:43:14 -06:00
skip.whitespc.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00
time.c Disable functionality for printing the time in the shell's prompt. This required strftime(), which is missing in GNO 2.0.6. 2014-11-05 18:00:35 -06:00
unicode.c Various changes for GNO and ORCA/C compatibility. 2014-11-02 18:30:31 -06:00
verror.msg.c Changes to handle the use of \r as newline on the IIgs. 2014-11-08 19:58:11 -06:00
vfork.and.run.c Switch the vfork implementation to use procrecvtim() for waiting, and not signal the parent from the child. 2014-12-01 21:05:13 -06:00
waitpid.emul.c Add an emulation of waitpid that should be better than the one in libc. 2014-11-07 12:12:18 -06:00
wfopen.c
xatonum.c Restructure macros in libbb/xatonum.c and its template file to work with the ORCA/C preprocessor. 2014-11-03 20:17:51 -06:00
xatonum.tmplt.c Restructure macros in libbb/xatonum.c and its template file to work with the ORCA/C preprocessor. 2014-11-03 20:17:51 -06:00
xfunc.die.c Change vfork_and_run implementation to inspect the kernel's process tables to determine whether the child has really exec'd or exited. 2014-11-10 16:08:24 -06:00
xfuncs.c Changes to handle the use of \r as newline on the IIgs. 2014-11-08 19:58:11 -06:00
xfuncs.printf.c Remove libbb/copyfd.c and an unused function that was its only caller. 2014-11-20 20:00:21 -06:00
xgetcwd.c *: whitespace fixes 2010-10-28 18:57:19 +02:00
xrealloc.vec.c Move all the source files to 15-character ProDOS-compatible file names. 2014-11-02 22:11:07 -06:00