summaryrefslogtreecommitdiff
path: root/Remote/External
diff options
context:
space:
mode:
Diffstat (limited to 'Remote/External')
-rw-r--r--Remote/External/Types.hs5
1 files changed, 5 insertions, 0 deletions
diff --git a/Remote/External/Types.hs b/Remote/External/Types.hs
index 98d391df8..33a22aeb1 100644
--- a/Remote/External/Types.hs
+++ b/Remote/External/Types.hs
@@ -48,6 +48,7 @@ data External = External
, externalState :: TMVar [ExternalState]
-- ^ TMVar is never left empty; list contains states for external
-- special remote processes that are not currently in use.
+ , externalLastPid :: TMVar PID
, externalDefaultConfig :: RemoteConfig
, externalGitConfig :: RemoteGitConfig
}
@@ -57,6 +58,7 @@ newExternal externaltype u c gc = liftIO $ External
<$> pure externaltype
<*> pure u
<*> atomically (newTMVar [])
+ <*> atomically (newTMVar 0)
<*> pure c
<*> pure gc
@@ -66,12 +68,15 @@ data ExternalState = ExternalState
{ externalSend :: Handle
, externalReceive :: Handle
, externalShutdown :: IO ()
+ , externalPid :: PID
, externalPrepared :: TMVar PrepareStatus
-- ^ Never left empty.
, externalConfig :: TMVar RemoteConfig
-- ^ Never left empty.
}
+type PID = Int
+
data PrepareStatus = Unprepared | Prepared | FailedPrepare ErrorMsg
-- Messages that can be sent to the external remote to request it do something.