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)
diff --git a/src/channel.c b/src/channel.c
index 75fc895..f8a8194 100644
--- a/src/channel.c
+++ b/src/channel.c
@@ -3997,6 +3997,11 @@
 	    if (channel_parse_messages())
 		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
 	    // use the deadline for that.
 	    timeout = timeout_arg;