diff options
author | Tamar Christina <tamar@zhox.com> | 2020-10-29 20:27:20 +0000 |
---|---|---|
committer | Marge Bot <ben+marge-bot@smart-cactus.org> | 2020-10-31 09:26:56 -0400 |
commit | cb1f755c6fb77f140aee11fdc7b4da04dd5dcd02 (patch) | |
tree | cc2956cfe5573e0f867769ae53f13e6077c2d919 | |
parent | 08e6993a1b956e6edccdc1cecc7250b724bf79a0 (diff) | |
download | haskell-cb1f755c6fb77f140aee11fdc7b4da04dd5dcd02.tar.gz |
winio: Fix unused variables warnings
-rw-r--r-- | libraries/base/GHC/Event/Windows.hsc | 22 | ||||
-rw-r--r-- | rts/win32/AsyncWinIO.c | 9 | ||||
-rw-r--r-- | rts/win32/AsyncWinIO.h | 2 |
3 files changed, 11 insertions, 22 deletions
diff --git a/libraries/base/GHC/Event/Windows.hsc b/libraries/base/GHC/Event/Windows.hsc index 1467551b46..ea2c51053a 100644 --- a/libraries/base/GHC/Event/Windows.hsc +++ b/libraries/base/GHC/Event/Windows.hsc @@ -289,8 +289,8 @@ foreign import ccall safe "registerIOCPHandle" registerIOCPHandle :: FFI.IOCP -> IO () foreign import ccall safe "registerAlertableWait" --- (bool has_timeout, DWORD mssec, uint64_t num_req, bool pending_service); - c_registerAlertableWait :: Bool -> DWORD -> Word64 -> Bool -> IO () +-- (bool has_timeout, DWORD mssec); + c_registerAlertableWait :: Bool -> DWORD -> IO () foreign import ccall safe "getOverlappedEntries" getOverlappedEntries :: Ptr DWORD -> IO (Ptr OVERLAPPED_ENTRY) @@ -674,12 +674,11 @@ withOverlappedEx mgr fname h offset startCB completionCB = do debugIO $ "-1.. " ++ show reqs1 ++ " requests queued after error." completionCB' (fromIntegral nerr) 0 when (not threadedIOMgr) $ - do num_remaining <- outstandingRequests - -- Run timeouts. This way if we canceled the last + do -- Run timeouts. This way if we canceled the last -- IO Request and have no timer events waiting we -- can go into an unbounded alertable wait. delay <- runExpiredTimeouts mgr - registerAlertableWait delay num_remaining True + registerAlertableWait delay return $ IOFailed Nothing let runner = do debugIO $ (dbgMsg ":: waiting ") ++ " | " ++ show lpol res <- readIOPort signal `catch` cancel @@ -1127,23 +1126,20 @@ processRemoteCompletion = do -- Process available completions _ <- processCompletion mngr n delay - num_left <- outstandingRequests - -- Update and potentially wake up IO Manager -- This call will unblock the non-threaded I/O manager. After this it is no -- longer safe to use `entries` nor `completed` as they can now be modified -- by the C thread. - registerAlertableWait delay num_left False + registerAlertableWait delay debugIO "processRemoteCompletion :: done ()" return () -registerAlertableWait :: Maybe Seconds -> Word64 -> Bool -> IO () -registerAlertableWait Nothing num_reqs pending_service = - c_registerAlertableWait False 0 num_reqs pending_service -registerAlertableWait (Just delay) num_reqs pending_service = +registerAlertableWait :: Maybe Seconds -> IO () +registerAlertableWait Nothing = + c_registerAlertableWait False 0 +registerAlertableWait (Just delay) = c_registerAlertableWait True (secondsToMilliSeconds delay) - num_reqs pending_service -- | Event loop for the Threaded I/O manager. The one for the non-threaded -- I/O manager is in AsyncWinIO.c in the rts. diff --git a/rts/win32/AsyncWinIO.c b/rts/win32/AsyncWinIO.c index eebb0c77fb..660a687f99 100644 --- a/rts/win32/AsyncWinIO.c +++ b/rts/win32/AsyncWinIO.c @@ -322,17 +322,10 @@ void completeSynchronousRequest (void) * MSSEC is the maximum amount of time in milliseconds that an alertable wait should be done for before the haskell side requested to be notified of progress. * NUM_REQ is the total overall number of outstanding I/O requests. - * pending_service indicates that there might be still a outstanding service - request queued and therefore we shouldn't unblock the runner quite yet. - - `pending_service` is needed in case we cancel an IO operation. We don't want this - to result in two processRemoteCompletion threads being queued. As this is both harder - to reason about and bad for performance. So we only reset outstanding_service_requests - if no service is pending. */ -void registerAlertableWait (bool has_timeout, DWORD mssec, uint64_t num_req, bool pending_service) +void registerAlertableWait (bool has_timeout, DWORD mssec) { ASSERT(completionPortHandle != INVALID_HANDLE_VALUE); AcquireSRWLockExclusive (&wio_runner_lock); diff --git a/rts/win32/AsyncWinIO.h b/rts/win32/AsyncWinIO.h index 3ddf5de77a..145fc86257 100644 --- a/rts/win32/AsyncWinIO.h +++ b/rts/win32/AsyncWinIO.h @@ -18,7 +18,7 @@ extern bool startupAsyncWinIO(void); extern void shutdownAsyncWinIO(bool wait_threads); extern void awaitAsyncRequests(bool wait); extern void registerIOCPHandle (HANDLE port); -extern void registerAlertableWait (bool has_timeout, DWORD mssec, uint64_t num_req, bool service_pending); +extern void registerAlertableWait (bool has_timeout, DWORD mssec); extern OVERLAPPED_ENTRY* getOverlappedEntries (uint32_t *num); extern void completeSynchronousRequest (void); |