diff options
author | Tamar Christina <tamar@zhox.com> | 2019-11-02 21:41:10 +0000 |
---|---|---|
committer | Ben Gamari <ben@smart-cactus.org> | 2020-07-15 16:41:02 -0400 |
commit | 84ea3d1492127442e2d416f1f576a5921186ada4 (patch) | |
tree | d923eac1c89f82a2d276784182f1cd9b2f8ed835 | |
parent | 8da15a09955926c4617d3468b84b3f3ca414d48a (diff) | |
download | haskell-84ea3d1492127442e2d416f1f576a5921186ada4.tar.gz |
winio: Relaxing some constraints in io-manager.
-rw-r--r-- | libraries/base/GHC/Event/Windows.hsc | 1 | ||||
-rw-r--r-- | rts/win32/AsyncWinIO.c | 2 | ||||
-rw-r--r-- | utils/fs/fs.c | 2 |
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; |