@@ -46,14 +46,15 @@ import Development.IDE.Core.IdeConfiguration
4646import Development.IDE.Core.Service (shutdown )
4747import Development.IDE.Core.Shake hiding (Log )
4848import Development.IDE.Core.Tracing
49- import Development.IDE.Core.WorkerThread
5049import qualified Development.IDE.Session as Session
5150import Development.IDE.Types.Shake (WithHieDb ,
5251 WithHieDbShield (.. ))
52+ import Development.IDE.WorkerThread
5353import Ide.Logger
5454import Language.LSP.Server (LanguageContextEnv ,
5555 LspServerLog ,
5656 type (<~> ))
57+ import System.Time.Extra (Seconds , sleep )
5758import System.Timeout (timeout )
5859data Log
5960 = LogRegisteringIdeConfig ! IdeConfiguration
@@ -67,10 +68,13 @@ data Log
6768 | LogShutDownTimeout Int
6869 | LogServerExitWith (Either () Int )
6970 | LogReactorShutdownConfirmed ! T. Text
71+ | LogInitializeIdeStateTookTooLong Seconds
7072 deriving Show
7173
7274instance Pretty Log where
7375 pretty = \ case
76+ LogInitializeIdeStateTookTooLong seconds ->
77+ " Building the initial session took more than" <+> pretty seconds <+> " seconds"
7478 LogReactorShutdownRequested b ->
7579 " Requested reactor shutdown; stop signal posted: " <+> pretty b
7680 LogReactorShutdownConfirmed msg ->
@@ -350,8 +354,8 @@ handleInit initParams env (TRequestMessage _ _ m params) = otTracedHandler "Init
350354runWithWorkerThreads :: Recorder (WithPriority Session. Log ) -> FilePath -> (WithHieDb -> ThreadQueue -> IO () ) -> IO ()
351355runWithWorkerThreads recorder dbLoc f = evalContT $ do
352356 (WithHieDbShield hiedb, threadQueue) <- runWithDb recorder dbLoc
353- sessionRestartTQueue <- withWorkerQueueSimple (cmapWithPrio Session. LogSessionWorkerThread recorder) " RestartTQueue"
354- sessionLoaderTQueue <- withWorkerQueueSimple (cmapWithPrio Session. LogSessionWorkerThread recorder) " SessionLoaderTQueue"
357+ sessionRestartTQueue <- withWorkerQueueSimple (logWith ( cmapWithPrio Session. LogSessionWorkerThread recorder) Debug ) " RestartTQueue"
358+ sessionLoaderTQueue <- withWorkerQueueSimple (logWith ( cmapWithPrio Session. LogSessionWorkerThread recorder) Debug ) " SessionLoaderTQueue"
355359 liftIO $ f hiedb (ThreadQueue threadQueue sessionRestartTQueue sessionLoaderTQueue)
356360
357361-- | Runs the action until it ends or until the given MVar is put.
0 commit comments