From 44d7913686ccfef4e6cbd0fdc2b5611aa944ec70 Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Sat, 26 Jan 2013 14:14:32 +1100 Subject: use async to track and manage threads --- Assistant/Types/DaemonStatus.hs | 8 ++++++-- Assistant/Types/NamedThread.hs | 32 -------------------------------- 2 files changed, 6 insertions(+), 34 deletions(-) delete mode 100644 Assistant/Types/NamedThread.hs (limited to 'Assistant/Types') diff --git a/Assistant/Types/DaemonStatus.hs b/Assistant/Types/DaemonStatus.hs index 7f868d957..6c949c8f4 100644 --- a/Assistant/Types/DaemonStatus.hs +++ b/Assistant/Types/DaemonStatus.hs @@ -16,12 +16,15 @@ import Utility.NotificationBroadcaster import Logs.Transfer import Control.Concurrent.STM +import Control.Concurrent.Async import Data.Time.Clock.POSIX import qualified Data.Map as M data DaemonStatus = DaemonStatus + -- All the named threads that comprise the daemon. + { startedThreads :: M.Map String (Async ()) -- False when the daemon is performing its startup scan - { scanComplete :: Bool + , scanComplete :: Bool -- Time when a previous process of the daemon was running ok , lastRunning :: Maybe POSIXTime -- True when the sanity checker is running @@ -58,7 +61,8 @@ type DaemonStatusHandle = TMVar DaemonStatus newDaemonStatus :: IO DaemonStatus newDaemonStatus = DaemonStatus - <$> pure False + <$> pure M.empty + <*> pure False <*> pure Nothing <*> pure False <*> pure Nothing diff --git a/Assistant/Types/NamedThread.hs b/Assistant/Types/NamedThread.hs deleted file mode 100644 index 0e122c097..000000000 --- a/Assistant/Types/NamedThread.hs +++ /dev/null @@ -1,32 +0,0 @@ -{- git-annex assistant named threads. - - - - Copyright 2012 Joey Hess - - - - Licensed under the GNU GPL version 3 or higher. - -} - -module Assistant.Types.NamedThread ( - ThreadName, - NamedThread(..), - debug, - notice, -) where - -import Common.Annex -import Assistant.Monad - -import System.Log.Logger - -type ThreadName = String -data NamedThread = NamedThread ThreadName (Assistant ()) - -debug :: [String] -> Assistant () -debug = logaction debugM - -notice :: [String] -> Assistant () -notice = logaction noticeM - -logaction :: (String -> String -> IO ()) -> [String] -> Assistant () -logaction a ws = do - name <- getAssistant threadName - liftIO $ a name $ unwords $ (name ++ ":") : ws -- cgit v1.2.3