[PATCH 2/2] server: Prevent polling on shutdown fd
Roman Pišl
rpisl at seznam.cz
Fri Jul 9 13:13:25 CDT 2021
Dne 05. 07. 21 v 21:54 Zebediah Figura (she/her) napsal(a):
> On 7/2/21 1:06 PM, David Koolhoven wrote:
>> Make sure we're not going to poll on connectionless file descriptors
>> which have received shutdown signals on their read and write ends.
>>
>> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51319
>> Signed-off-by: David Koolhoven <david at koolhoven-home.net>
>> ---
>> server/sock.c | 4 ++++
>> 1 file changed, 4 insertions(+)
>>
>> diff --git a/server/sock.c b/server/sock.c
>> index ce2f390ec05..ecf10441c2b 100644
>> --- a/server/sock.c
>> +++ b/server/sock.c
>> @@ -1197,6 +1197,10 @@ static int sock_get_poll_events( struct fd *fd )
>> {
>> ev |= POLLOUT;
>> }
>> + if (sock->rd_shutdown && sock->wr_shutdown && ev == 0)
>> + {
>> + ev = -1;
>> + }
>> break;
>> }
>>
>
> This seems reasonable to me, but I feel like it deserves a comment—in
> the code, rather than in the commit message—that describes why we need
> to do this. See the comment for the SOCK_UNCONNECTED case above.
>
Hi, I'm facing a regression of a networking application with the same
symptoms (wineserver at 100%). There is a little progress only if both
these patches are applied but 100% peaks can still be observed at times
(which are not with Wine 6.0.1) and the application still suffers from
some errors. It seems to me that there is a deeper problem.
More information about the wine-devel
mailing list