0
0
mirror of https://github.com/vim/vim.git synced 2025-09-25 03:54:15 -04:00

patch 8.1.1512: ch_evalexpr() hangs when used recursively

Problem:    ch_evalexpr() hangs when used recursively. (Paul Jolly)
Solution:   Change ch_block_id from a single number to a list of IDs to wait
            on.
This commit is contained in:
Bram Moolenaar
2019-06-09 19:51:58 +02:00
parent ac2450a9a8
commit 38ea784fec
3 changed files with 77 additions and 12 deletions

View File

@@ -1680,8 +1680,8 @@ typedef struct {
readq_T ch_head; /* header for circular raw read queue */
jsonq_T ch_json_head; /* header for circular json read queue */
int ch_block_id; /* ID that channel_read_json_block() is
waiting for */
garray_T ch_block_ids; /* list of IDs that channel_read_json_block()
is waiting for */
/* When ch_wait_len is non-zero use ch_deadline to wait for incomplete
* message to be complete. The value is the length of the incomplete
* message when the deadline was set. If it gets longer (something was