better dup key with -J fix
This avoids all the complication about redundant work discussed in the previous try at fixing this. At the expense of needing each command that could have the problem to be patched to simply wrap the action in onlyActionOn once the key is known. But there do not seem to be many such commands. onlyActionOn' should not be used with a CommandStart (or CommandPerform), although the types do allow it. onlyActionOn handles running the whole CommandStart chain. I couldn't immediately see a way to avoid mistken use of onlyActionOn'. This commit was supported by the NSF-funded DataLad project.
This commit is contained in:
parent
68a49adcda
commit
e1ac299ad0
16 changed files with 82 additions and 77 deletions
|
@ -7,13 +7,10 @@
|
|||
|
||||
module Types.Transfer where
|
||||
|
||||
import Types.Remote
|
||||
import Types.Key
|
||||
import Types.UUID
|
||||
import Types
|
||||
import Utility.PID
|
||||
import Utility.QuickCheck
|
||||
|
||||
import Control.Concurrent.STM
|
||||
import Data.Time.Clock.POSIX
|
||||
import Control.Concurrent
|
||||
import Control.Applicative
|
||||
|
@ -33,18 +30,18 @@ data Transfer = Transfer
|
|||
- git repository. It's some file, possibly relative to some directory,
|
||||
- of some repository, that was acted on to initiate the transfer.
|
||||
-}
|
||||
data TransferInfoA a = TransferInfo
|
||||
data TransferInfo = TransferInfo
|
||||
{ startedTime :: Maybe POSIXTime
|
||||
, transferPid :: Maybe PID
|
||||
, transferTid :: Maybe ThreadId
|
||||
, transferRemote :: Maybe (RemoteA a)
|
||||
, transferRemote :: Maybe Remote
|
||||
, bytesComplete :: Maybe Integer
|
||||
, associatedFile :: AssociatedFile
|
||||
, transferPaused :: Bool
|
||||
}
|
||||
deriving (Show, Eq, Ord)
|
||||
|
||||
stubTransferInfo :: TransferInfoA a
|
||||
stubTransferInfo :: TransferInfo
|
||||
stubTransferInfo = TransferInfo Nothing Nothing Nothing Nothing Nothing (AssociatedFile Nothing) False
|
||||
|
||||
data Direction = Upload | Download
|
||||
|
@ -59,7 +56,7 @@ parseDirection "upload" = Just Upload
|
|||
parseDirection "download" = Just Download
|
||||
parseDirection _ = Nothing
|
||||
|
||||
instance Arbitrary (TransferInfoA a) where
|
||||
instance Arbitrary TransferInfo where
|
||||
arbitrary = TransferInfo
|
||||
<$> arbitrary
|
||||
<*> arbitrary
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue