Commit graph

6908 commits

Author SHA1 Message Date
Daniel Kochmański
abf580c9e4 external process: handle sigstop / sigcont in process
New state "resumed" added.
2017-02-20 15:21:26 +01:00
Daniel Kochmański
772262f1c6 external-process-wait: be exact with case
Sanity check.
2017-02-20 13:03:01 +01:00
Daniel Kochmański
03bd29426b process-wait: fix very important typo 2017-02-20 12:35:01 +01:00
Daniel Kochmański
236e8b38d1 ext:terminate-process: sanitize input 2017-02-20 12:14:10 +01:00
Daniel Kochmański
412770daac spawn-subprocess: duplicate parent_error fd
Handler needs to be duplicated if we want to have separate stream for
error.
2017-02-20 11:39:02 +01:00
Daniel Kochmański
d6b0354772 run-program: add hack for installing signal-handler 2017-02-19 18:25:03 +01:00
Daniel Kochmański
a92c50fe44 external-process: add sigchld handler
It's not installed by default yet due to a kludge with our interrupt
interface.
2017-02-19 17:55:27 +01:00
Daniel Kochmański
2701310046 external-process-wait: handle stopped process
we have a few possibilities here. Handle them correctly.
2017-02-19 14:41:25 +01:00
Daniel Kochmański
4554336fae cosmetic 2017-02-19 14:09:56 +01:00
Daniel Kochmański
f0ad7b9550 killpid: add internal interface to kill 2017-02-19 13:47:58 +01:00
Daniel Kochmański
500a7b7d6b external-process: move terminate-process outside the core 2017-02-19 13:21:58 +01:00
Daniel Kochmański
65c70996fc cosmetic 2017-02-19 13:01:24 +01:00
Daniel Kochmański
47f1525ebd external-process: add disabled terminate-process 2017-02-19 13:00:58 +01:00
Daniel Kochmański
786039ca97 cosmetic fixes(2) 2017-02-19 12:51:35 +01:00
Daniel Kochmański
40f47f04aa cosmetic fixes 2017-02-19 12:51:23 +01:00
Daniel Kochmański
bcacc6bdb0 si_wait: move to external, its called from the outside 2017-02-19 11:12:22 +01:00
Daniel Kochmański
91c45d09cd dpp: always set zero-th variable with values 2017-02-19 11:10:30 +01:00
Daniel Kochmański
ef65a8b1ac external-process-wait: accessor is *-%code 2017-02-19 08:29:16 +01:00
Daniel Kochmański
11d5773d26 ecl-waitpid wrapper: si_waitpid takes objects 2017-02-19 08:28:01 +01:00
Daniel Kochmański
333c23ad4c external-process: move external-process-wait outside the core 2017-02-19 07:59:41 +01:00
Daniel Kochmański
b4affb9302 ecl_waitpid: promote to internal global function si_waitpid 2017-02-19 07:45:25 +01:00
Daniel Kochmański
22ebecd7d0 run-program-inner: argv is (command . argv) 2017-02-18 20:45:43 +01:00
Daniel Kochmański
ce111619cf run-program: provide simple interface run-program-inner
Both run-program and run-program-inner work on same interface
si:spawn-subprocess.
2017-02-18 20:31:03 +01:00
Daniel Kochmański
127af0e59a prepare-args: revert, its create process responsibility 2017-02-18 20:27:46 +01:00
Daniel Kochmański
6ff556b707 core: bring bad old system function (3) 2017-02-18 20:25:51 +01:00
Daniel Kochmański
a402eaca70 core: bring bad old system function (2) 2017-02-18 20:25:32 +01:00
Daniel Kochmański
4aaadf0545 core: bring bad old system function 2017-02-18 20:25:17 +01:00
Daniel Kochmański
1e62ca0a1a prepare-args: last argument is NIL for POSIX
On POSIX arguments starts with command name and end with NULL. Ensure,
that last argument is NULL to avoid "Bad address".
2017-02-18 20:23:15 +01:00
Daniel Kochmański
0144154b9d prepare-args: coerce arguments for windows 2017-02-18 19:14:34 +01:00
Daniel Kochmański
f7e224b84e external-process: remove interface ties from the core
We are stopping to handle sigchld for time being because it was too
tightly coupled with core.

Internal interface wait-for-all-processes is removed as well as eager
update of process state.
2017-02-18 15:04:10 +01:00
Daniel Kochmański
a810a4f73d ext:system: don't escape arguments 2017-02-18 07:53:55 +01:00
Daniel Kochmański
204062999f Merge branch 'refactor-run-program' into develop
Refactor run-program to have HL interface in lisp sources. Add proper
argument escaping on Windows (fixes #304).

TODO:
- write tests for run-program
- documentation
- move external-process logic to process.lsp
- implement external-process-pipe-thread
2017-02-17 19:26:22 +01:00
Daniel Kochmański
039f49a02e run-program: windows: sanitize args 2017-02-17 19:04:45 +01:00
Daniel Kochmański
d07fbcb9fd run-program: windows: args 2017-02-17 19:03:08 +01:00
Daniel Kochmański
a26791e9fb run-program: on windows argv is a string (no car) 2017-02-17 18:59:39 +01:00
Daniel Kochmański
ca08f94430 cosmetic 2017-02-17 18:45:04 +01:00
Daniel Kochmański
9e69603e4f run-program: fix misconception 2017-02-17 18:43:19 +01:00
Daniel Kochmański
2b2ef967ef run-program: don't modify command 2017-02-17 18:31:36 +01:00
Daniel Kochmański
10242910f9 Merge branch 'develop' into refactor-run-program 2017-02-17 18:30:32 +01:00
Daniel Kochmański
ee10aa7313 run-program: error stream direction is output 2017-02-17 17:58:13 +01:00
Daniel Kochmański
1360bc1306 cosmetic: add comment 2017-02-17 17:25:12 +01:00
Daniel Kochmański
212a60e9bc run-program: if gray-stream passed, propose continuation
If execution is continued, new stream is created.
2017-02-17 17:24:19 +01:00
Daniel Kochmański
76e503ed7a run-program: if gray-stream passed, propose continuation
If execution is continued, new stream is created.
2017-02-17 17:22:26 +01:00
Daniel Kochmański
2fb64f6d82 run-program: process passed arguments properly 2017-02-17 16:49:32 +01:00
Daniel Kochmański
d8c4da22fc run-program: use previously prepared arguments 2017-02-17 16:24:48 +01:00
Daniel Kochmański
9a166af99c run-program: typos / ommisions 2017-02-17 16:05:16 +01:00
Daniel Kochmański
86faf44d2a run-program: initial separation (logic / low-level interface) 2017-02-17 15:21:31 +01:00
Daniel Kochmański
6fe66843de cosmetic: be explicit about comments 2017-02-17 14:19:51 +01:00
Daniel Kochmański
d9a715d7da cleanup: remove dead code (2) 2017-02-17 14:18:45 +01:00
Daniel Kochmański
dfa4d36384 cleanup: remove dead code 2017-02-17 14:18:27 +01:00