stall detection is working
New config annex.stalldetection, remote.name.annex-stalldetection, which can be used to deal with remotes that stall during transfers, or are sometimes too slow to want to use. This commit was sponsored by Luke Shumaker on Patreon.
This commit is contained in:
parent
09ed9f7d1f
commit
41f2c308ff
11 changed files with 213 additions and 46 deletions
|
@ -24,6 +24,7 @@ import Assistant.Alert
|
|||
import Assistant.Alert.Utility
|
||||
import Assistant.Commits
|
||||
import Assistant.Drop
|
||||
import Annex.Transfer (stallDetection)
|
||||
import Types.Transfer
|
||||
import Logs.Transfer
|
||||
import Logs.Location
|
||||
|
@ -37,6 +38,7 @@ import Annex.Path
|
|||
import Utility.Batch
|
||||
import Types.NumCopies
|
||||
|
||||
import Data.Either
|
||||
import qualified Data.Map as M
|
||||
import qualified Control.Exception as E
|
||||
import Control.Concurrent
|
||||
|
@ -123,7 +125,8 @@ genTransfer t info = case transferRemote info of
|
|||
( do
|
||||
debug [ "Transferring:" , describeTransfer t info ]
|
||||
notifyTransfer
|
||||
return $ Just (t, info, go remote)
|
||||
sd <- liftAnnex $ stallDetection remote
|
||||
return $ Just (t, info, go remote sd)
|
||||
, do
|
||||
debug [ "Skipping unnecessary transfer:",
|
||||
describeTransfer t info ]
|
||||
|
@ -162,7 +165,7 @@ genTransfer t info = case transferRemote info of
|
|||
- usual cleanup. However, first check if something else is
|
||||
- running the transfer, to avoid removing active transfers.
|
||||
-}
|
||||
go remote transferrer = ifM (performTransfer transferrer AssistantLevel t (transferRemote info) (associatedFile info) liftAnnex)
|
||||
go remote sd transferrer = ifM (isRight <$> performTransfer sd AssistantLevel liftAnnex (transferRemote info) t info transferrer)
|
||||
( do
|
||||
case associatedFile info of
|
||||
AssociatedFile Nothing -> noop
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue