aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/event/process.h
diff options
context:
space:
mode:
authorBjörn Linse <bjorn.linse@gmail.com>2017-08-27 11:59:33 +0200
committerBjörn Linse <bjorn.linse@gmail.com>2017-11-24 14:50:00 +0100
commit5215e3205a07b85e4e4cf1f8a8ca6be2b9556459 (patch)
tree515ccc2d01935465edd71f1d66f526be7dc66cfc /src/nvim/event/process.h
parent3717e2157f2d45ce23dbe4ac03085fea2d956dc4 (diff)
downloadrneovim-5215e3205a07b85e4e4cf1f8a8ca6be2b9556459.tar.gz
rneovim-5215e3205a07b85e4e4cf1f8a8ca6be2b9556459.tar.bz2
rneovim-5215e3205a07b85e4e4cf1f8a8ca6be2b9556459.zip
channels: refactor
Diffstat (limited to 'src/nvim/event/process.h')
-rw-r--r--src/nvim/event/process.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/nvim/event/process.h b/src/nvim/event/process.h
index 5c00e8e7ec..0897563c83 100644
--- a/src/nvim/event/process.h
+++ b/src/nvim/event/process.h
@@ -23,13 +23,15 @@ struct process {
uint64_t stopped_time;
const char *cwd;
char **argv;
- Stream *in, *out, *err;
+ Stream in, out, err;
process_exit_cb cb;
internal_process_cb internal_exit_cb, internal_close_cb;
+ bool exited; // TODO: redundant
bool closed, detach;
MultiQueue *events;
};
+
static inline Process process_init(Loop *loop, ProcessType type, void *data)
{
return (Process) {
@@ -43,9 +45,9 @@ static inline Process process_init(Loop *loop, ProcessType type, void *data)
.stopped_time = 0,
.cwd = NULL,
.argv = NULL,
- .in = NULL,
- .out = NULL,
- .err = NULL,
+ .in = { .closed = false },
+ .out = { .closed = false },
+ .err = { .closed = false },
.cb = NULL,
.closed = false,
.internal_close_cb = NULL,
@@ -54,6 +56,11 @@ static inline Process process_init(Loop *loop, ProcessType type, void *data)
};
}
+static inline bool process_is_stopped(Process *proc)
+{
+ return proc->stopped_time != 0;
+}
+
#ifdef INCLUDE_GENERATED_DECLARATIONS
# include "event/process.h.generated.h"
#endif