summaryrefslogtreecommitdiff
path: root/Logs/Transfer.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Logs/Transfer.hs')
-rw-r--r--Logs/Transfer.hs18
1 files changed, 14 insertions, 4 deletions
diff --git a/Logs/Transfer.hs b/Logs/Transfer.hs
index 24fb940d5..b96b827c6 100644
--- a/Logs/Transfer.hs
+++ b/Logs/Transfer.hs
@@ -18,13 +18,23 @@ import Utility.Metered
import Utility.Percentage
import Utility.QuickCheck
-import System.Posix.Types
+#ifndef mingw32_HOST_OS
+import System.Posix.Types (ProcessID)
+#else
+import System.Win32.Process (ProcessId)
+#endif
import Data.Time.Clock
import Data.Time.Clock.POSIX
import Data.Time
import System.Locale
import Control.Concurrent
+#ifndef mingw32_HOST_OS
+type PID = ProcessID
+#else
+type PID = ProcessId
+#endif
+
{- Enough information to uniquely identify a transfer, used as the filename
- of the transfer information file. -}
data Transfer = Transfer
@@ -42,7 +52,7 @@ data Transfer = Transfer
-}
data TransferInfo = TransferInfo
{ startedTime :: Maybe POSIXTime
- , transferPid :: Maybe ProcessID
+ , transferPid :: Maybe PID
, transferTid :: Maybe ThreadId
, transferRemote :: Maybe Remote
, bytesComplete :: Maybe Integer
@@ -328,13 +338,13 @@ writeTransferInfo info = unlines
, fromMaybe "" $ associatedFile info -- comes last; arbitrary content
]
-readTransferInfoFile :: Maybe ProcessID -> FilePath -> IO (Maybe TransferInfo)
+readTransferInfoFile :: Maybe PID -> FilePath -> IO (Maybe TransferInfo)
readTransferInfoFile mpid tfile = catchDefaultIO Nothing $ do
h <- openFile tfile ReadMode
fileEncoding h
hClose h `after` (readTransferInfo mpid <$> hGetContentsStrict h)
-readTransferInfo :: Maybe ProcessID -> String -> Maybe TransferInfo
+readTransferInfo :: Maybe PID -> String -> Maybe TransferInfo
readTransferInfo mpid s = TransferInfo
<$> time
<*> pure mpid