File tree Expand file tree Collapse file tree 1 file changed +7
-4
lines changed
ghcide/src/Development/IDE/Core Expand file tree Collapse file tree 1 file changed +7
-4
lines changed Original file line number Diff line number Diff line change @@ -75,7 +75,7 @@ module Development.IDE.Core.Shake(
75
75
VFSModified (.. ), getClientConfigAction ,
76
76
) where
77
77
78
- import Control.Concurrent (withMVar )
78
+ import Control.Concurrent (tryReadMVar , withMVar )
79
79
import Control.Concurrent.Async
80
80
import Control.Concurrent.STM
81
81
import Control.Concurrent.STM.Stats (atomicallyNamed )
@@ -734,11 +734,14 @@ shakeShut recorder IdeState{..} = do
734
734
-- request so we first abort that.
735
735
cancelShakeSession runner
736
736
void $ shakeDatabaseProfile shakeDb
737
+ -- might hang if there are still running
738
+ progressStop $ progress shakeExtras
739
+ stopMonitoring
737
740
case res of
738
- Nothing -> logWith recorder Error $ LogTimeOutShuttingDownWaitForSessionVar 1
741
+ Nothing -> do
742
+ logWith recorder Error $ LogTimeOutShuttingDownWaitForSessionVar 1
743
+ stopMonitoring
739
744
Just _ -> pure ()
740
- progressStop $ progress shakeExtras
741
- stopMonitoring
742
745
743
746
-- | This is a variant of withMVar where the first argument is run unmasked and if it throws
744
747
-- an exception, the previous value is restored while the second argument is executed masked.
You can’t perform that action at this time.
0 commit comments