diff --git a/tdutils/td/utils/port/FileFd.cpp b/tdutils/td/utils/port/FileFd.cpp index 3b5f59cb0..6f06820fe 100644 --- a/tdutils/td/utils/port/FileFd.cpp +++ b/tdutils/td/utils/port/FileFd.cpp @@ -468,9 +468,9 @@ Status FileFd::sync() { CHECK(!empty()); #if TD_PORT_POSIX #if TD_DARWIN - if (fcntl(get_native_fd().fd(), F_FULLFSYNC) == -1) { + if (detail::skip_eintr([&] { return fcntl(get_native_fd().fd(), F_FULLFSYNC); }) == -1) { #else - if (fsync(get_native_fd().fd()) != 0) { + if (detail::skip_eintr([&] { return fsync(get_native_fd().fd()); }) != 0) { #endif #elif TD_PORT_WINDOWS if (FlushFileBuffers(get_native_fd().fd()) == 0) {