summaryrefslogtreecommitdiffstats
path: root/winsup/cygserver/sysv_msg.cc
diff options
context:
space:
mode:
Diffstat (limited to 'winsup/cygserver/sysv_msg.cc')
-rw-r--r--winsup/cygserver/sysv_msg.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/winsup/cygserver/sysv_msg.cc b/winsup/cygserver/sysv_msg.cc
index 217cc1d97..9e90d05a9 100644
--- a/winsup/cygserver/sysv_msg.cc
+++ b/winsup/cygserver/sysv_msg.cc
@@ -733,7 +733,8 @@ msgsnd(struct thread *td, struct msgsnd_args *uap)
if (error != 0) {
DPRINTF(("msgsnd: interrupted system call\n"));
#ifdef __CYGWIN__
- if (error != EIDRM)
+ if (error == EIDRM)
+ goto done2;
#endif /* __CYGWIN__ */
error = EINTR;
goto done2;
@@ -1089,7 +1090,8 @@ msgrcv(struct thread *td, struct msgrcv_args *uap)
if (error != 0) {
DPRINTF(("msgrcv: interrupted system call\n"));
#ifdef __CYGWIN__
- if (error != EIDRM)
+ if (error == EIDRM)
+ goto done2;
#endif /* __CYGWIN__ */
error = EINTR;
goto done2;