summaryrefslogtreecommitdiff
path: root/Assistant/TransferQueue.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joey@kitenet.net>2012-07-05 14:34:20 -0600
committerGravatar Joey Hess <joey@kitenet.net>2012-07-05 14:34:20 -0600
commit71b5ad8398c4d86d5e9b993e175b48f2c5f0861d (patch)
tree46bd1db5caa16256b948146ecd2d61057bed44fb /Assistant/TransferQueue.hs
parente8df726d07657c82c012a02697282c2bc642e742 (diff)
wrote transfer thread
finally!
Diffstat (limited to 'Assistant/TransferQueue.hs')
-rw-r--r--Assistant/TransferQueue.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/Assistant/TransferQueue.hs b/Assistant/TransferQueue.hs
index f1f4882be..a35815ca1 100644
--- a/Assistant/TransferQueue.hs
+++ b/Assistant/TransferQueue.hs
@@ -25,6 +25,7 @@ stubInfo f = TransferInfo
{ startedTime = Nothing
, transferPid = Nothing
, transferThread = Nothing
+ , transferRemote = Nothing
, bytesComplete = Nothing
, associatedFile = f
}
@@ -33,7 +34,7 @@ stubInfo f = TransferInfo
- remotes. -}
queueTransfers :: TransferQueue -> DaemonStatusHandle -> Key -> AssociatedFile -> Direction -> Annex ()
queueTransfers q daemonstatus k f direction =
- mapM_ (liftIO . queueTransfer q f . gentransfer)
+ mapM_ (\r -> queue r $ gentransfer r)
=<< sufficientremotes . knownRemotes
<$> getDaemonStatus daemonstatus
where
@@ -53,8 +54,11 @@ queueTransfers q daemonstatus k f direction =
gentransfer r = Transfer
{ transferDirection = direction
, transferKey = k
- , transferRemote = Remote.uuid r
+ , transferUUID = Remote.uuid r
}
+ queue r t = liftIO $ void $ atomically $ do
+ let info = (stubInfo f) { transferRemote = Just r }
+ writeTChan q (t, info)
{- Adds a pending transfer to the end of the queue. -}
queueTransfer :: TransferQueue -> AssociatedFile -> Transfer -> IO ()