Age | Commit message (Collapse) | Author | |
---|---|---|---|
2017-12-09 | Do not redirect stderr to stdin in fork/pipe. | Benutzer | |
Signed-off-by: Peter Bex <peter@more-magic.net> | |||
2017-11-18 | Run signal handler in a separate thread | Peter Bex | |
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. | |||
2017-11-18 | Perform trial wait with "nohang" set to #t when blocking | Peter Bex | |
We might have missed the one and only SIGCHLD event for the process we're about to wait for, so attempt to reap it before entering the condition variable wait loop. Just in case, we always do this when we're woken up, so that we can't accidentally miss the signal. | |||
2017-11-10 | Also unmask (if needed) sigchld in the child process thunk | Peter Bex | |
This would be otherwise kept in masked mode because the thunk is in the dynamic extent of the dynamic-wind. | |||
2017-11-10 | Don't unmask signal if the signal was already masked before forking | Peter Bex | |
2017-11-09 | Temporarily mask sigchld to avoid race condition in fork | Peter Bex | |
We do a fork, and immediately afterwards we insert a scsh-process object into the pending processes table with the pid of the newly created child process. However, sigchld may arrive in between the fork and the insertion of the scsh-process object into the pending process table. The sigchld handler will reap the child process and attempt to update the pending scsh-process object, but it can't find it yet because the insertion of this object into the table happens after the fork, thus losing the reaped child's exit status. Then, if the program waits for the process after that, we enter an infinite busy waiting loop that expects a sigchld to arrive and update the object through the table, but that never happens because the child has already been reaped. | |||
2017-11-08 | Fix process-wait on #f or a plain pid | Peter Bex | |
Thanks to Jörg F. Wittenberger for the patch and test | |||
2017-06-29 | Ensure ports are closed after reading in run/...* procedures (thanks to ↵ | Peter Bex | |
Jörg F. Wittenberger) | |||
2017-06-03 | Reinstall deadlock workaround thread when forking with thread killing | Peter Bex | |
2017-05-23 | Fix race condition that caused mutex to get unlocked when the process wasn't ↵ | Peter Bex | |
ready yet | |||
2017-05-23 | Block only current thread instead of entire process when waiting for a child. | Jörg Wittenberger | |
Signed-off-by: Peter Bex <peter@more-magic.net> | |||
2017-01-24 | Update copyright year | Peter Bex | |
2017-01-21 | Clear pending process table on fork. | Peter Bex | |
Thanks to Joerg Wittenberger | |||
2017-01-21 | Also export proc:pid (thanks to Joerg Wittenberger) | Peter Bex | |
2016-09-24 | Add proc:pid, proc?, signal-process and process-sleep for improved compat | Peter Bex | |
Thanks to Joerg Wittenberger for the suggestion to add proc:pid and signal-process. | |||
2015-07-18 | Fix default output redirections to ignore stderr. | Peter Bex | |
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. | |||
2013-06-22 | Bump version to 0.4.1 (and update copyright year, while we're at it)0.4.1 | Peter Bex | |
2013-06-18 | Support unquote-splicing through a variant of exec-path (reported by Moritz) | Peter Bex | |
2012-11-03 | Support new process-fork form which can kill all other threads. We still ↵ | Peter Bex | |
see some problems occurring | |||
2012-10-06 | Fix order of returning0.3.1 | Peter Bex | |
2012-10-06 | Return #f from WAIT when nohang is given and the process hasn't completed | Peter Bex | |
2012-10-06 | Provide a new 'wait' procedure so we don't need to modify the type of ↵0.3 | Peter Bex | |
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... | |||
2012-10-06 | Revert back to standard-extension and include a type declaration override ↵ | Peter Bex | |
for scsh-process to fix bogus optimization of 'signal-handler' due to invalid scrutiny type | |||
2012-10-06 | Add back the nohang option to the process-wait override | Peter Bex | |
2012-10-05 | Improve test for <<-redirection by making it less dependent on random ↵ | Peter Bex | |
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 | |||
2012-10-04 | Reorder return values of process-wait; we shouldn't mess with that! | Peter Bex | |
2012-10-03 | Add bookkeeping code for processes so we can get rid of all zombie processes | Peter Bex | |
2012-10-03 | Clean up tempfiles by open/unlink combination in run/collecting* | Peter Bex | |
2012-10-02 | Ensure port is closed before returning from run/sexp*; this would hopefull ↵ | Peter Bex | |
ensure processes don't hang when they keep writing while the pipe buffer is full. Instead, it would kill the process with sigpipe | |||
2012-10-02 | fork/pipe returns #f in the child, not 0 | Peter Bex | |
2012-10-02 | Use implicit quasiquotation inside object-redirection rule too | Peter Bex | |
2012-10-02 | Fix setup script and remove untrue and misleading comment | Peter Bex | |
2012-10-02 | Use better ->string conversion routine | Peter Bex | |
2012-10-02 | Fix run/collecting* and add a testcase for it | Peter Bex | |
2012-10-02 | Implement <<-redirection | Peter Bex | |
2012-10-01 | Implement appending to files | Peter Bex | |
2012-10-01 | Fix run/port* so it doesn't replace the input port when in the REPL. ↵ | Peter Bex | |
Unfortunately, no test for it | |||
2012-10-01 | Implement run/file*, which is really weird | Peter Bex | |
2012-10-01 | Mistake: the fork should automatically exit, the user shouldn't need to do this | Peter Bex | |
2012-10-01 | Implement && and || (which is a bit of a hack in Chicken considering it's ↵ | Peter Bex | |
the empty symbol) | |||
2012-10-01 | Add BSD license clause | Peter Bex | |
2012-10-01 | Clean up FDs that we don't use anymore | Peter Bex | |
2012-10-01 | Fix nested pipe expressions and run/sexps, adding tests for both | Peter Bex | |
2012-10-01 | Provide a more complete set of primitives, and convert fit-pipes to ↵ | Peter Bex | |
fork/pipe+ chain | |||
2012-10-01 | Implement pipe fitting | Peter Bex | |
2012-09-30 | Implement scheme begin forms, filedescriptor dup()ing and use ↵ | Peter Bex | |
print-error-message to print the error message, then exit | |||
2012-09-30 | First stab at basic scsh interface. Currently can fork off subprocesses and ↵ | Peter Bex | |
run processess synchronously |