macos fsync issues

This commit is contained in:
voidlizard 2025-08-22 15:49:52 +03:00
parent 3508ad1258
commit 96726cf287
1 changed files with 9 additions and 4 deletions

View File

@ -7,17 +7,22 @@ import Foreign.C.Types
import System.Posix.Types
import System.Posix.Unistd (fileSynchronise)
foreign import capi unsafe "unistd.h fsync"
c_fsync :: CInt -> IO CInt
#ifdef darwin_HOST_OS
#if defined(darwin_HOST_OS)
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"
f_FULLFSYNC :: CInt
c_fcntl :: CInt -> CInt -> CInt -> IO ()
c_fcntl fd cmd arg = do
_ <- c_fcntl_raw fd cmd arg
pure ()
#endif
fileSynchronisePortable :: Fd -> IO ()
fileSynchronisePortable fd@(Fd fdi) = do
#if defined(darwin_HOST_OS)