comparison src/structs.h @ 17024:727f8cc87a45 v8.1.1512

patch 8.1.1512: ch_evalexpr() hangs when used recursively commit https://github.com/vim/vim/commit/38ea784fecf7921dca83ddc75fe9cb40708521b2 Author: Bram Moolenaar <Bram@vim.org> Date: Sun Jun 9 19:51:58 2019 +0200 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.
author Bram Moolenaar <Bram@vim.org>
date Sun, 09 Jun 2019 20:00:06 +0200
parents 959ea232e50d
children 5ed4965ebc7b
comparison
equal deleted inserted replaced
17023:fd131767cde7 17024:727f8cc87a45
1678 job_io_T ch_io; 1678 job_io_T ch_io;
1679 int ch_timeout; /* request timeout in msec */ 1679 int ch_timeout; /* request timeout in msec */
1680 1680
1681 readq_T ch_head; /* header for circular raw read queue */ 1681 readq_T ch_head; /* header for circular raw read queue */
1682 jsonq_T ch_json_head; /* header for circular json read queue */ 1682 jsonq_T ch_json_head; /* header for circular json read queue */
1683 int ch_block_id; /* ID that channel_read_json_block() is 1683 garray_T ch_block_ids; /* list of IDs that channel_read_json_block()
1684 waiting for */ 1684 is waiting for */
1685 /* When ch_wait_len is non-zero use ch_deadline to wait for incomplete 1685 /* When ch_wait_len is non-zero use ch_deadline to wait for incomplete
1686 * message to be complete. The value is the length of the incomplete 1686 * message to be complete. The value is the length of the incomplete
1687 * message when the deadline was set. If it gets longer (something was 1687 * message when the deadline was set. If it gets longer (something was
1688 * received) the deadline is reset. */ 1688 * received) the deadline is reset. */
1689 size_t ch_wait_len; 1689 size_t ch_wait_len;