Mercurial > vim
changeset 17212:fd983b381ec0 v8.1.1605
patch 8.1.1605: Vim may delay processing messages on a json channel
commit https://github.com/vim/vim/commit/4340fc95d50518c6eb199107e5f1144f210c7ee5
Author: Bram Moolenaar <Bram@vim.org>
Date: Fri Jun 28 22:06:49 2019 +0200
patch 8.1.1605: Vim may delay processing messages on a json channel
Problem: Vim may delay processing messages on a json channel. (Pontus
Leitzler)
Solution: Try parsing json when checking if there is readahead.
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Fri, 28 Jun 2019 22:15:05 +0200 |
parents | 7b6fc912182c |
children | d031972f6d0a |
files | src/channel.c src/version.c |
diffstat | 2 files changed, 9 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/src/channel.c +++ b/src/channel.c @@ -2851,9 +2851,13 @@ channel_has_readahead(channel_T *channel if (ch_mode == MODE_JSON || ch_mode == MODE_JS) { jsonq_T *head = &channel->ch_part[part].ch_json_head; - jsonq_T *item = head->jq_next; - - return item != NULL; + + if (head->jq_next == NULL) + // Parse json from readahead, there might be a complete message to + // process. + channel_parse_json(channel, part); + + return head->jq_next != NULL; } return channel_peek(channel, part) != NULL; }