Age | Commit message (Collapse) | Author |
|
This allows us to reduce the code considerably because CHICKEN 6 now
has native process objects, so we don't need to keep our own version
of process tracking.
Note that we still need to keep our own list of child processes
created by "fork", because we want the automatic subprocess reaper to
be able to work in a thread. This means we still need to have a
central mapping of our own subprocesses to condition object so we can
signal the thread which is waiting.
After all I'm not so sure if this was such a great idea, but it's kind
of a neat feature that could be useful, so keep it for now.
|
|
We would initially create a pipe, dup(2) that onto fd 1 in the forked
process and open an output port on the original fd. This resulted in
a pretty nasty bug: if the fd would be redirected (by number) later,
it would not affect the output port because that was set up to point
to the original fd.
Instead, open an output port to the newly set up stdout and close the
direct pipe port.
|
|
Thanks to Vasilij Schneidermann for providing an initial patch.
|
|
|
|
run*/string* does not exist, and run/string* doesn't raise an
exception on nonzero exit status.
|
|
Thanks to Joerg Wittenberger
|
|
Thanks to Diego "dieggsy" for pointing out this incongruity with
scsh-process.
|
|
This seems to be necessary so that condition-variable-broadcast! works
when the signal handler is running in the same thread as the waiting
thread.
|
|
This would be otherwise kept in masked mode because the thunk is in
the dynamic extent of the dynamic-wind.
|
|
|
|
Signed-off-by: Peter Bex <peter@more-magic.net>
|
|
|
|
This is what scsh does as well, and is more like a regular UNIX shell.
Thanks to Haochi Kiang for reporting the bug and providing a patch.
|
|
|
|
see some problems occurring
|
|
process-wait, which could lead to trouble in user code when compiled with scrutiny and/or specialization. This procedure returns the values in a different order for ease of use. May be a bit confusing...
|
|
segfaults immediately. TODO: Figure out why
|
|
factors that determine process interleaving, ensuring it gets processed through the pipeline rather than on the same descriptor by mangling it through 'tr'. Fix <<-redirection by reopening output port on new descriptor and explicitly setting up the input port to the given fd in the parent process
|
|
|
|
|
|
garbage for run/sexp's test
|
|
|
|
|
|
|
|
|
|
Unfortunately, no test for it
|
|
|
|
|
|
|
|
the empty symbol)
|
|
|