aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/sys/win32
diff options
context:
space:
mode:
authorLukas Larsson <[email protected]>2014-10-30 11:27:15 +0100
committerLukas Larsson <[email protected]>2014-10-30 11:27:15 +0100
commitc3baa2ad6a7877ef1c2081d50903f3e513292339 (patch)
tree6921205d0e3949cfca01c625714a17c9a81a456e /erts/emulator/sys/win32
parent9e9d456cc9db4f04b07afe1d149a0065f85409b1 (diff)
downloadotp-c3baa2ad6a7877ef1c2081d50903f3e513292339.tar.gz
otp-c3baa2ad6a7877ef1c2081d50903f3e513292339.tar.bz2
otp-c3baa2ad6a7877ef1c2081d50903f3e513292339.zip
erts: Fix hanging in fd_stop on windows
When reaping ports the flushReplyEvent is not signalled and therefore an errornous loop check caused the emulator to hang forever during shutdown.
Diffstat (limited to 'erts/emulator/sys/win32')
-rw-r--r--erts/emulator/sys/win32/sys.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/erts/emulator/sys/win32/sys.c b/erts/emulator/sys/win32/sys.c
index 0ded6b274e..62de462b93 100644
--- a/erts/emulator/sys/win32/sys.c
+++ b/erts/emulator/sys/win32/sys.c
@@ -2190,7 +2190,7 @@ static void fd_stop(ErlDrvData data)
ASSERT(dp->out.flushEvent);
SetEvent(dp->out.flushEvent);
} while (WaitForSingleObject(dp->out.flushReplyEvent, 10) == WAIT_TIMEOUT
- || !(dp->out.flags & DF_THREAD_FLUSHED));
+ && !(dp->out.flags & DF_THREAD_FLUSHED));
}
}