progress meter for p2phttp storeKey
This commit is contained in:
parent
b3915b88ba
commit
cfdb80cd05
3 changed files with 6 additions and 4 deletions
|
@ -318,7 +318,7 @@ clientPut meterupdate k moffset af contentfile contentfilesize validitycheck cli
|
||||||
return (Right res)
|
return (Right res)
|
||||||
where
|
where
|
||||||
stream h checkv checkresultv = S.SourceT $ \a -> do
|
stream h checkv checkresultv = S.SourceT $ \a -> do
|
||||||
bl <- L.hGetContents h
|
bl <- hGetContentsMetered h meterupdate
|
||||||
v <- newMVar (0, filter (not . B.null) (L.toChunks bl))
|
v <- newMVar (0, filter (not . B.null) (L.toChunks bl))
|
||||||
a (go v)
|
a (go v)
|
||||||
where
|
where
|
||||||
|
|
|
@ -57,6 +57,7 @@ import qualified Remote.GCrypt
|
||||||
import qualified Remote.GitLFS
|
import qualified Remote.GitLFS
|
||||||
import qualified Remote.P2P
|
import qualified Remote.P2P
|
||||||
import qualified Remote.Helper.P2P as P2PHelper
|
import qualified Remote.Helper.P2P as P2PHelper
|
||||||
|
import qualified P2P.Protocol as P2P
|
||||||
import P2P.Address
|
import P2P.Address
|
||||||
import P2P.Http.Url
|
import P2P.Http.Url
|
||||||
import P2P.Http.Client
|
import P2P.Http.Client
|
||||||
|
@ -667,10 +668,11 @@ copyToRemote' repo r st@(State connpool duc _ _ _) key af o meterupdate
|
||||||
return False
|
return False
|
||||||
Nothing -> return True
|
Nothing -> return True
|
||||||
in p2pHttpClient r (const $ pure $ PutOffsetResultPlus (Offset 0)) (clientPutOffset key) >>= \case
|
in p2pHttpClient r (const $ pure $ PutOffsetResultPlus (Offset 0)) (clientPutOffset key) >>= \case
|
||||||
PutOffsetResultPlus offset ->
|
PutOffsetResultPlus (offset@(Offset (P2P.Offset n))) ->
|
||||||
metered (Just meterupdate) key bwlimit $ \_ p -> do
|
metered (Just meterupdate) key bwlimit $ \_ p -> do
|
||||||
|
let p' = offsetMeterUpdate p (BytesProcessed n)
|
||||||
res <- p2pHttpClient r giveup $
|
res <- p2pHttpClient r giveup $
|
||||||
clientPut p key (Just offset) af object sz check'
|
clientPut p' key (Just offset) af object sz check'
|
||||||
case res of
|
case res of
|
||||||
PutResultPlus False _ ->
|
PutResultPlus False _ ->
|
||||||
failedsend
|
failedsend
|
||||||
|
|
|
@ -28,7 +28,7 @@ Planned schedule of work:
|
||||||
|
|
||||||
## work notes
|
## work notes
|
||||||
|
|
||||||
* Rest of Remote.Git needs implementing: put, drop, lock
|
* Rest of Remote.Git needs implementing: drop, lock
|
||||||
|
|
||||||
* A Locker should expire the lock on its own after 10 minutes,
|
* A Locker should expire the lock on its own after 10 minutes,
|
||||||
initially. Once keeplocked is called, the expiry should end with the end
|
initially. Once keeplocked is called, the expiry should end with the end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue