@@ -49,22 +49,14 @@ lockFile winHandle lock = do
50 allocaBytes sizeof_OVERLAPPED $ \op -> do
50 allocaBytes sizeof_OVERLAPPED $ \op -> do
51 zeroMemory op $ fromIntegral sizeof_OVERLAPPED
51 zeroMemory op $ fromIntegral sizeof_OVERLAPPED
52− res <- c_lockFileEx winHandle (exFlag .|. blockFlag) 0 1 0 op
52+ failIfFalse_ "LockFileEx" $ c_lockFileEx winHandle (exFlag .|. blockFlag) 0 1 0 op
56− error "failed to wait for database lock"
58unlockFile :: HANDLE -> IO ()
54unlockFile :: HANDLE -> IO ()
59unlockFile winHandle = do
55unlockFile winHandle = do
60 let sizeof_OVERLAPPED = 32
56 let sizeof_OVERLAPPED = 32
61 allocaBytes sizeof_OVERLAPPED $ \op -> do
57 allocaBytes sizeof_OVERLAPPED $ \op -> do
62 zeroMemory op $ fromIntegral sizeof_OVERLAPPED
58 zeroMemory op $ fromIntegral sizeof_OVERLAPPED
63− res <- c_unlockFileEx winHandle 0 1 0 op
59+ failIfFalse_ "UnlockFileEx" $ c_unlockFileEx winHandle 0 1 0 op
67− error ("failed to unlock database lock: " ++ show res)
70--all of this complicated nonsense is fixed if we switch to GHC 8.2 which includes native flock support on handles
62--all of this complicated nonsense is fixed if we switch to GHC 8.2 which includes native flock support on handles