summaryrefslogtreecommitdiff
path: root/Assistant/Types
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2013-01-26 14:14:32 +1100
committerGravatar Joey Hess <joey@kitenet.net>2013-01-26 14:14:32 +1100
commit44d7913686ccfef4e6cbd0fdc2b5611aa944ec70 (patch)
treeb8343b59f6730ff31fb7b88ffc11e13073d88c8e /Assistant/Types
parent28eb1f598b1f494b6de815593fa8bfb9aaaeb250 (diff)
use async to track and manage threads
Diffstat (limited to 'Assistant/Types')
-rw-r--r--Assistant/Types/DaemonStatus.hs8
-rw-r--r--Assistant/Types/NamedThread.hs32
2 files changed, 6 insertions, 34 deletions
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 <joey@kitenet.net>
- -
- - 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