Subject: Re: bug#45821: 28.0.50; Add UDP support for Emacs on Windows

From: Eli Zaretskii <[email-masked]>
Date: Mon, 04 Oct 2021 20:59:29 +0300

> From: Robert Pluim <[email-masked]>
> Cc: Eli Zaretskii <[email-masked]>,  [email-masked]
> Date: Mon, 04 Oct 2021 19:47:43 +0200
> 
> I did some more debugging on this. What's happening is that in
> 'wait_reading_process_output', when calling gnutls_try_handshake,
> weʼre exceeding GNUTLS_EMACS_HANDSHAKES_LIMIT. That has a value of
> 6000, so my suspicion is that because the reader_thread no longer
> actually reads, but just calls pfn_WSAEventSelect,
> 'wait_reading_process_output' just spins.

It spins why? because sys_select doesn't wait at all? or doesn't wait
on a handle of the reader thread?

IOW, that would mean the simple state machine between the reader
thread and sys_select somehow became broken, and the question is how?

Or looking at it from a different aspect: how is calling
pfn_WSAEventSelect different from calling _sys_read_ahead, for the
purposes of the dance between the reader thread and sys_select?