Revision: 23359 http://trac.macosforge.org/projects/launchd/changeset/23359 Author: zarzycki@apple.com Date: 2007-09-06 15:24:34 -0700 (Thu, 06 Sep 2007) Log Message: ----------- Create a wrapper around fsync(). Modified Paths: -------------- trunk/launchd/src/launchd_core_logic.c trunk/launchd/src/launchd_runtime.c trunk/launchd/src/launchd_runtime.h Modified: trunk/launchd/src/launchd_core_logic.c =================================================================== --- trunk/launchd/src/launchd_core_logic.c 2007-09-05 21:14:09 UTC (rev 23358) +++ trunk/launchd/src/launchd_core_logic.c 2007-09-06 22:24:34 UTC (rev 23359) @@ -4492,7 +4492,7 @@ } if (logfile_fd != -1) { - job_assumes(j, fcntl(logfile_fd, F_FULLFSYNC, 0) != -1); + job_assumes(j, runtime_fsync(logfile_fd) != -1); job_assumes(j, runtime_close(logfile_fd) != -1); } Modified: trunk/launchd/src/launchd_runtime.c =================================================================== --- trunk/launchd/src/launchd_runtime.c 2007-09-05 21:14:09 UTC (rev 23358) +++ trunk/launchd/src/launchd_runtime.c 2007-09-06 22:24:34 UTC (rev 23359) @@ -1036,11 +1036,18 @@ runtime_closelog(void) { if (ourlogfile) { - fflush(ourlogfile); + launchd_assumes(fflush(ourlogfile) == 0); + launchd_assumes(runtime_fsync(fileno(ourlogfile)) != -1); + } +} - if (debug_shutdown_hangs) { - fcntl(fileno(ourlogfile), F_FULLFSYNC, NULL); - } +int +runtime_fsync(int fd) +{ + if (debug_shutdown_hangs) { + return fcntl(fd, F_FULLFSYNC, NULL); + } else { + return fsync(fd); } } Modified: trunk/launchd/src/launchd_runtime.h =================================================================== --- trunk/launchd/src/launchd_runtime.h 2007-09-05 21:14:09 UTC (rev 23358) +++ trunk/launchd/src/launchd_runtime.h 2007-09-06 22:24:34 UTC (rev 23359) @@ -61,6 +61,7 @@ void launchd_runtime(void) __attribute__((noreturn)); int runtime_close(int fd); +int runtime_fsync(int fd); void runtime_set_timeout(timeout_callback to_cb, mach_msg_timeout_t to); kern_return_t runtime_add_mport(mach_port_t name, mig_callback demux, mach_msg_size_t msg_size);
participants (1)
-
source_changes@macosforge.org