[erlang-questions] : file:sync

Raimo Niskanen <>
Fri Mar 9 09:54:19 CET 2007


Sorry about the noresponse.

You are most probably right, and I do not know why _commit() is not used.
msdn.microsoft.com claims it has existed since Windows95, and that
you only have to include <io.h>.

We will simply have to insert a call to _commit(fd) in win_efile.c.
The change will come in a future release.

Thank you for finding the bug.



On Thu, Mar 08, 2007 at 10:50:53PM +0000, Matthew Sackman wrote:
> Hi,
> 
> Err, I'm slightly surprised there's been no response to this. Surely
> this has massive implications for the reliability of dets and mnesia,
> amongst other things like disk_log and general file operations on win32.
> Or is win32 a second-class citizen for Erlang?
> 
> On Wed, Mar 07, 2007 at 12:20:08PM +0000, Matthew Sackman wrote:
> > So, for ./erts/emulator/drivers/unix/unix_efile.c
> > 
> > int
> > efile_fsync(Efile_error *errInfo, /* Where to return error codes. */
> > 	    int fd)               /* File descriptor for file to sync. */
> > {
> > #ifdef NO_FSYNC
> > #ifdef VXWORKS
> >     return check_error(ioctl(fd, FIOSYNC, 0), errInfo); 
> > #else
> >   undefined fsync
> > #endif /* VXWORKS */
> > #else
> >     return check_error(fsync(fd), errInfo);
> > #endif /* NO_FSYNC */
> > }
> > 
> > ok - the important line being the last where fsync is actually called
> > which is in glibc unistd.h which is imported. Fine.
> > 
> > Then we have for ./erts/emulator/drivers/win32/win_efile.c
> > 
> > int
> > efile_fsync(errInfo, fd)
> > Efile_error* errInfo;		/* Where to return error codes. */
> > int fd;				/* File descriptor for file to sync. */
> > {
> >     return 1;
> > }
> 
> Matthew
> -- 
> Matthew Sackman
> http://www.wellquite.org/
> _______________________________________________
> erlang-questions mailing list
> 
> http://www.erlang.org/mailman/listinfo/erlang-questions

-- 

/ Raimo Niskanen, Erlang/OTP, Ericsson AB



More information about the erlang-questions mailing list