diff options
author | Björn Linse <bjorn.linse@gmail.com> | 2019-05-17 18:16:45 +0200 |
---|---|---|
committer | Björn Linse <bjorn.linse@gmail.com> | 2019-06-18 10:49:38 +0200 |
commit | d4938743e6aef04c83d02907048768d0d79aaa30 (patch) | |
tree | afdd0cbd21e494e48da65d346c67aa68416e0b31 /src/nvim/channel.h | |
parent | 4946751906370134cd02e8da0736bef221171172 (diff) | |
download | rneovim-d4938743e6aef04c83d02907048768d0d79aaa30.tar.gz rneovim-d4938743e6aef04c83d02907048768d0d79aaa30.tar.bz2 rneovim-d4938743e6aef04c83d02907048768d0d79aaa30.zip |
channel: refactor events, prevent recursive invocation of events
Diffstat (limited to 'src/nvim/channel.h')
-rw-r--r-- | src/nvim/channel.h | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/nvim/channel.h b/src/nvim/channel.h index b856d197f1..c733e276be 100644 --- a/src/nvim/channel.h +++ b/src/nvim/channel.h @@ -42,13 +42,16 @@ typedef struct { Callback cb; dict_T *self; garray_T buffer; + bool eof; bool buffered; + const char *type; } CallbackReader; #define CALLBACK_READER_INIT ((CallbackReader){ .cb = CALLBACK_NONE, \ .self = NULL, \ .buffer = GA_EMPTY_INIT_VALUE, \ - .buffered = false }) + .buffered = false, \ + .type = NULL }) static inline bool callback_reader_set(CallbackReader reader) { return reader.cb.type != kCallbackNone || reader.self; @@ -73,9 +76,13 @@ struct Channel { RpcState rpc; Terminal *term; - CallbackReader on_stdout; + CallbackReader on_data; CallbackReader on_stderr; Callback on_exit; + int exit_status; + + bool callback_busy; + bool callback_scheduled; }; EXTERN PMap(uint64_t) *channels; |