mirror of https://github.com/voidlizard/hbs2
macos fsync issues
This commit is contained in:
parent
3508ad1258
commit
96726cf287
|
@ -7,17 +7,22 @@ import Foreign.C.Types
|
||||||
import System.Posix.Types
|
import System.Posix.Types
|
||||||
import System.Posix.Unistd (fileSynchronise)
|
import System.Posix.Unistd (fileSynchronise)
|
||||||
|
|
||||||
foreign import capi unsafe "unistd.h fsync"
|
#ifdef darwin_HOST_OS
|
||||||
c_fsync :: CInt -> IO CInt
|
|
||||||
|
|
||||||
#if defined(darwin_HOST_OS)
|
|
||||||
foreign import capi unsafe "fcntl.h fcntl"
|
foreign import capi unsafe "fcntl.h fcntl"
|
||||||
c_fcntl :: CInt -> CInt -> CInt -> IO CInt
|
c_fcntl_raw :: CInt -> CInt -> CInt -> IO CInt
|
||||||
|
|
||||||
foreign import capi unsafe "fcntl.h value F_FULLFSYNC"
|
foreign import capi unsafe "fcntl.h value F_FULLFSYNC"
|
||||||
f_FULLFSYNC :: CInt
|
f_FULLFSYNC :: CInt
|
||||||
|
|
||||||
|
c_fcntl :: CInt -> CInt -> CInt -> IO ()
|
||||||
|
c_fcntl fd cmd arg = do
|
||||||
|
_ <- c_fcntl_raw fd cmd arg
|
||||||
|
pure ()
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
fileSynchronisePortable :: Fd -> IO ()
|
fileSynchronisePortable :: Fd -> IO ()
|
||||||
fileSynchronisePortable fd@(Fd fdi) = do
|
fileSynchronisePortable fd@(Fd fdi) = do
|
||||||
#if defined(darwin_HOST_OS)
|
#if defined(darwin_HOST_OS)
|
||||||
|
|
Loading…
Reference in New Issue