You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against 002af352fac43d170aad216bf15098b27555539a.
This commit is contained in:
@@ -1,85 +0,0 @@
|
||||
From c3170561ea6c0de42ae71925e31e08941e1b96dc Mon Sep 17 00:00:00 2001
|
||||
From: Sebastian Lackner <sebastian@fds-team.de>
|
||||
Date: Sun, 31 Jul 2016 00:03:02 +0200
|
||||
Subject: server: Workaround duplicate condition warning of GCC 6.
|
||||
|
||||
---
|
||||
server/request.c | 13 ++++++++++---
|
||||
server/sock.c | 9 ++++++++-
|
||||
2 files changed, 18 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/server/request.c b/server/request.c
|
||||
index 597bf88..483884b 100644
|
||||
--- a/server/request.c
|
||||
+++ b/server/request.c
|
||||
@@ -220,6 +220,13 @@ const void *get_req_data_after_objattr( const struct object_attributes *attr, da
|
||||
return ptr;
|
||||
}
|
||||
|
||||
+static inline int should_retry( int err )
|
||||
+{
|
||||
+ if (err == EWOULDBLOCK) return 1;
|
||||
+ if (err == EAGAIN) return 1;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
/* write the remaining part of the reply */
|
||||
void write_reply( struct thread *thread )
|
||||
{
|
||||
@@ -241,7 +248,7 @@ void write_reply( struct thread *thread )
|
||||
}
|
||||
if (errno == EPIPE)
|
||||
kill_thread( thread, 0 ); /* normal death */
|
||||
- else if (errno != EWOULDBLOCK && errno != EAGAIN)
|
||||
+ else if (!should_retry( errno ))
|
||||
fatal_protocol_error( thread, "reply write: %s\n", strerror( errno ));
|
||||
}
|
||||
|
||||
@@ -368,7 +375,7 @@ error:
|
||||
kill_thread( thread, 0 );
|
||||
else if (ret > 0)
|
||||
fatal_protocol_error( thread, "partial read %d\n", ret );
|
||||
- else if (errno != EWOULDBLOCK && errno != EAGAIN)
|
||||
+ else if (!should_retry( errno ))
|
||||
fatal_protocol_error( thread, "read: %s\n", strerror( errno ));
|
||||
}
|
||||
|
||||
@@ -449,7 +456,7 @@ int receive_fd( struct process *process )
|
||||
}
|
||||
else
|
||||
{
|
||||
- if (errno != EWOULDBLOCK && errno != EAGAIN)
|
||||
+ if (!should_retry( errno ))
|
||||
{
|
||||
fprintf( stderr, "Protocol error: process %04x: ", process->id );
|
||||
perror( "recvmsg" );
|
||||
diff --git a/server/sock.c b/server/sock.c
|
||||
index dc10d2a..4f76163 100644
|
||||
--- a/server/sock.c
|
||||
+++ b/server/sock.c
|
||||
@@ -1065,6 +1065,13 @@ static void ifchange_wake_up( struct object *obj, unsigned int status )
|
||||
}
|
||||
}
|
||||
|
||||
+static inline int should_retry( int err )
|
||||
+{
|
||||
+ if (err == EWOULDBLOCK) return 1;
|
||||
+ if (err == EAGAIN) return 1;
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
static void ifchange_poll_event( struct fd *fd, int event )
|
||||
{
|
||||
struct object *ifchange = get_fd_user( fd );
|
||||
@@ -1075,7 +1082,7 @@ static void ifchange_poll_event( struct fd *fd, int event )
|
||||
r = recv( get_unix_fd(fd), buffer, sizeof(buffer), MSG_DONTWAIT );
|
||||
if (r < 0)
|
||||
{
|
||||
- if (errno == EWOULDBLOCK || errno == EAGAIN)
|
||||
+ if (should_retry( errno ))
|
||||
return; /* retry when poll() says the socket is ready */
|
||||
status = sock_get_ntstatus( errno );
|
||||
}
|
||||
--
|
||||
2.9.0
|
||||
|
Reference in New Issue
Block a user