summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamar Christina <tamar@zhox.com>2019-11-02 21:41:10 +0000
committerBen Gamari <ben@smart-cactus.org>2020-07-15 16:41:02 -0400
commit84ea3d1492127442e2d416f1f576a5921186ada4 (patch)
treed923eac1c89f82a2d276784182f1cd9b2f8ed835
parent8da15a09955926c4617d3468b84b3f3ca414d48a (diff)
downloadhaskell-84ea3d1492127442e2d416f1f576a5921186ada4.tar.gz
winio: Relaxing some constraints in io-manager.
-rw-r--r--libraries/base/GHC/Event/Windows.hsc1
-rw-r--r--rts/win32/AsyncWinIO.c2
-rw-r--r--utils/fs/fs.c2
3 files changed, 3 insertions, 2 deletions
diff --git a/libraries/base/GHC/Event/Windows.hsc b/libraries/base/GHC/Event/Windows.hsc
index 4688075daf..c923e4e922 100644
--- a/libraries/base/GHC/Event/Windows.hsc
+++ b/libraries/base/GHC/Event/Windows.hsc
@@ -676,6 +676,7 @@ withOverlappedEx mgr fname h offset startCB completionCB = do
when (not threaded) $
do num_remaining <- outstandingRequests
servicedIOEntries num_remaining
+ completeSynchronousRequest
return $ IOFailed Nothing
let runner = do debugIO $ (dbg ":: waiting ") ++ " | " ++ show lpol
res <- readIOPort signal `catch` cancel
diff --git a/rts/win32/AsyncWinIO.c b/rts/win32/AsyncWinIO.c
index 00c2fe2913..2b6a44ee39 100644
--- a/rts/win32/AsyncWinIO.c
+++ b/rts/win32/AsyncWinIO.c
@@ -306,7 +306,7 @@ void awaitAsyncRequests (bool wait)
not empty but we can't do that here. Also these locks don't guarantee
fairness, as such a request may have completed without us seeing a
timeslice in between. */
- if (wait && !outstanding_service_requests)
+ if (wait && outstanding_service_requests)
SleepConditionVariableSRW (&threadIOWait, &lock, INFINITE, 0);
ReleaseSRWLockExclusive (&lock);
}
diff --git a/utils/fs/fs.c b/utils/fs/fs.c
index 51f45eb2d0..ebed2ca0fc 100644
--- a/utils/fs/fs.c
+++ b/utils/fs/fs.c
@@ -412,7 +412,7 @@ int FS(_stat64) (const char *path, struct __stat64 *buffer)
static __time64_t ftToPosix(FILETIME ft)
{
- // takes the last modified date
+ /* takes the last modified date. */
LARGE_INTEGER date, adjust;
date.HighPart = ft.dwHighDateTime;
date.LowPart = ft.dwLowDateTime;