diff options
author | Joey Hess <joey@kitenet.net> | 2012-07-05 14:34:20 -0600 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2012-07-05 14:34:20 -0600 |
commit | 71b5ad8398c4d86d5e9b993e175b48f2c5f0861d (patch) | |
tree | 46bd1db5caa16256b948146ecd2d61057bed44fb /Assistant/TransferQueue.hs | |
parent | e8df726d07657c82c012a02697282c2bc642e742 (diff) |
wrote transfer thread
finally!
Diffstat (limited to 'Assistant/TransferQueue.hs')
-rw-r--r-- | Assistant/TransferQueue.hs | 8 |
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 () |