mirror of https://github.com/voidlizard/hbs2
accepted 6Dpwned28fg ettime-non-linux
This commit is contained in:
parent
f62a9f6f2b
commit
e2d17322ed
|
@ -1,3 +1,10 @@
|
|||
## 2023-03-27
|
||||
|
||||
PR: gettime-non-linux
|
||||
branch: pr-gettime-non-linux
|
||||
commit: a2cd4d575f965dc9c71b69a1355d6603129f2373
|
||||
Исправляет получение текущего времени для MacOS.
|
||||
Также добавлены "x86_64-darwin" и "aarch64-darwin" во flake.nix.
|
||||
|
||||
## 2023-03-27
|
||||
|
||||
|
|
|
@ -197,11 +197,11 @@
|
|||
]
|
||||
},
|
||||
"locked": {
|
||||
"lastModified": 1672641093,
|
||||
"narHash": "sha256-v0Uj3gkDWPdnXZUKpJGD7RxIOncTexhN0csIop36yug=",
|
||||
"lastModified": 1679933705,
|
||||
"narHash": "sha256-UOd70L+FKQLmGjA3IqjFaBpaS/dZMSABtRgVDY3lBCg=",
|
||||
"owner": "voidlizard",
|
||||
"repo": "hspup",
|
||||
"rev": "031d27dea1505fd68cd603da7e72eb5eefd348fd",
|
||||
"rev": "6b969a9de1f9800ebfc61c51252b8647123c51bb",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
|
|
|
@ -26,7 +26,7 @@ outputs = { self, nixpkgs, haskell-flake-utils, ... }@inputs:
|
|||
|
||||
haskell-flake-utils.lib.simpleCabalProject2flake {
|
||||
inherit self nixpkgs;
|
||||
systems = [ "x86_64-linux" "aarch64-linux" ];
|
||||
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
|
||||
name = "hbs2";
|
||||
|
||||
haskellFlakes = with inputs; [
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
{-# Language FunctionalDependencies #-}
|
||||
{-# LANGUAGE CPP #-}
|
||||
module HBS2.Clock
|
||||
( module HBS2.Clock
|
||||
, module System.Clock
|
||||
|
@ -71,5 +72,12 @@ class Expires a where
|
|||
-- FIXME: dangerous!
|
||||
expiresIn _ = Nothing
|
||||
|
||||
|
||||
|
||||
-- | Use coarse clock timer. This timer has 1ms resolution but is much
|
||||
-- faster comparing to the ordinary one. Is used on Linux, on MacOS
|
||||
-- provides ordinary one.
|
||||
getTimeCoarse :: IO TimeSpec
|
||||
#ifdef linux_HOST_OS
|
||||
getTimeCoarse = getTime MonotonicCoarse
|
||||
#else
|
||||
getTimeCoarse = getTime Monotonic
|
||||
#endif
|
||||
|
|
|
@ -312,8 +312,7 @@ instance HasPeerLocator e m => HasPeerLocator e (BlockDownloadM e m) where
|
|||
updatePeerInfo :: MonadIO m => Bool -> PeerInfo e -> m ()
|
||||
updatePeerInfo onError pinfo = do
|
||||
|
||||
-- FIXME: macos-support-3
|
||||
t1 <- liftIO $ getTime MonotonicCoarse
|
||||
t1 <- liftIO getTimeCoarse
|
||||
|
||||
void $ liftIO $ atomically $ do
|
||||
|
||||
|
|
|
@ -204,8 +204,7 @@ fetchBlockState :: MonadIO m => Hash HbSync -> BlockDownloadM e m BlockState
|
|||
fetchBlockState h = do
|
||||
sh <- asks (view blockState)
|
||||
liftIO do
|
||||
-- FIXME: macos-support-2
|
||||
now <- getTime MonotonicCoarse
|
||||
now <- getTimeCoarse
|
||||
tvlast <- newTVarIO now
|
||||
tvreq <- newTVarIO 0
|
||||
tvsz <- newTVarIO False
|
||||
|
@ -232,8 +231,7 @@ delBlockState h = do
|
|||
incBlockSizeReqCount :: MonadIO m => Hash HbSync -> BlockDownloadM e m ()
|
||||
incBlockSizeReqCount h = do
|
||||
blk <- fetchBlockState h
|
||||
-- FIXME: macos-support-4
|
||||
now <- liftIO $ getTime MonotonicCoarse
|
||||
now <- liftIO getTimeCoarse
|
||||
seen <- liftIO $ readTVarIO (view bsLastSeen blk)
|
||||
let elapsed = realToFrac (toNanoSecs (now - seen)) / 1e9
|
||||
noSize <- liftIO $ readTVarIO (view bsHasSize blk) <&> not
|
||||
|
|
|
@ -105,10 +105,7 @@ touchForRead ss k = liftIO $ do
|
|||
|
||||
bsmm <- unsafeMMapFile (simpleBlockFileName ss k)
|
||||
|
||||
-- FIXME: macos-support-1
|
||||
-- вынести функцию в библиотеку
|
||||
-- обернуть в CPP
|
||||
tick <- getTime MonotonicCoarse
|
||||
tick <- getTimeCoarse
|
||||
|
||||
atomically $ do
|
||||
modifyTVar' mmaped (HashMap.insert k bsmm)
|
||||
|
|
Loading…
Reference in New Issue