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