patch 8.2.4699: hard to reproduce hang when reading from a channel
Problem: Hard to reproduce hang when reading from a channel. Solution: Check for readahead before starting to wait. (closes #10093, closes #7781, closes #6364)
This commit is contained in:
@ -3997,6 +3997,11 @@ channel_read_json_block(
|
|||||||
if (channel_parse_messages())
|
if (channel_parse_messages())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
// channel_parse_messages() may fill the queue with new data to
|
||||||
|
// process.
|
||||||
|
if (channel_has_readahead(channel, part))
|
||||||
|
continue;
|
||||||
|
|
||||||
// Wait for up to the timeout. If there was an incomplete message
|
// Wait for up to the timeout. If there was an incomplete message
|
||||||
// use the deadline for that.
|
// use the deadline for that.
|
||||||
timeout = timeout_arg;
|
timeout = timeout_arg;
|
||||||
|
|||||||
@ -746,6 +746,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
4699,
|
||||||
/**/
|
/**/
|
||||||
4698,
|
4698,
|
||||||
/**/
|
/**/
|
||||||
|
|||||||
Reference in New Issue
Block a user