summaryrefslogtreecommitdiff
path: root/Assistant/BranchChange.hs
blob: d1d1c20dfe6afa0efdb6c000d6dfe9ddb74e8d5f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
{- git-annex assistant git-annex branch change tracking
 -
 - Copyright 2012 Joey Hess <joey@kitenet.net>
 -
 - Licensed under the GNU GPL version 3 or higher.
 -}

module Assistant.BranchChange where

import Control.Concurrent.MSampleVar
import Assistant.Common

newtype BranchChangeHandle = BranchChangeHandle (MSampleVar ())

newBranchChangeHandle :: IO BranchChangeHandle
newBranchChangeHandle = BranchChangeHandle <$> newEmptySV

branchChanged :: BranchChangeHandle -> IO ()
branchChanged (BranchChangeHandle h) = writeSV h ()

waitBranchChange :: BranchChangeHandle -> IO ()
waitBranchChange (BranchChangeHandle h) = readSV h