Subject: Re: bug#32452: 26.1; gnutls_try_handshake maxes out cpu retrying when server is a bit busy

From: Eli Zaretskii <[email-masked]>
Date: Sat, 26 Feb 2022 17:37:08 +0200

> From: Lars Ingebrigtsen <[email-masked]>
> Cc: Noam Postavsky <[email-masked]>,  [email-masked],  Eli
>  Zaretskii <[email-masked]>,  Gnulib bugs <[email-masked]>
> Date: Sat, 26 Feb 2022 16:12:23 +0100
> 
> Paul Eggert <[email-masked]> writes:
> 
> > Gnulib's nanosleep appears to use select only for old Unixish
> > platforms that were relevant in 2000 but aren't practical porting
> > targets any more. So I installed into Gnulib the attached patch to
> > simplify Gnulib nanosleep by having it fall back on pselect rather
> > than select, and to not bother with signal handling. This should cause
> > your addition of nanosleep to admin/merge-gnulib to add only the files
> > lib/nanosleep.c and m4/nanosleep.m4 (not the other, signal-related
> > files you mentioned; they shouldn't be needed with Emacs).
> 
> Thanks; that does indeed fix the issues, and ./admin/merge-gnulib now
> works fine for me when I add nanosleep to the list of modules.
> 
> > I notice that Emacs's GNUstep code calls 'select'. For completeness
> > this should be 'pselect' instead, so that Emacs never calls 'select'.
> 
> OK; I'll have a look at that...

Please post the patch before landing it.  Gnulib's nanosleep is
problematic on MS-Windows (and shouldn't be used there anyway), so I'd
like to eyeball the changes before they are installed.

Thanks.