fsync all files before closing them
authorHeikki Levanto <heikki@indexdata.dk>
Tue, 16 Jul 2002 09:52:20 +0000 (09:52 +0000)
committerHeikki Levanto <heikki@indexdata.dk>
Tue, 16 Jul 2002 09:52:20 +0000 (09:52 +0000)
Safety, and also much more reliable timings

bfile/mfile.c

index 9a9793c..8e85e79 100644 (file)
@@ -3,7 +3,7 @@
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
  * All rights reserved.
  * Sebastian Hammer, Adam Dickmeiss
  *
- * $Id: mfile.c,v 1.45 2002-07-09 10:05:31 adam Exp $
+ * $Id: mfile.c,v 1.46 2002-07-16 09:52:20 heikki Exp $
  */
 
 
  */
 
 
@@ -248,6 +248,7 @@ MFile_area mf_init(const char *name, const char *spec, const char *base)
                       dent->d_name);
                return 0;
            }
                       dent->d_name);
                return 0;
            }
+           fsync(fd);
            close(fd);
            if (dirp->max_bytes >= 0)
                dirp->avail_bytes -= part_f->bytes;
            close(fd);
            if (dirp->max_bytes >= 0)
                dirp->avail_bytes -= part_f->bytes;
@@ -410,6 +411,7 @@ int mf_close(MFile mf)
     for (i = 0; i < mf->no_files; i++)
        if (mf->files[i].fd >= 0)
        {
     for (i = 0; i < mf->no_files; i++)
        if (mf->files[i].fd >= 0)
        {
+           fsync(mf->files[i].fd);
            close(mf->files[i].fd);
            mf->files[i].fd = -1;
        }
            close(mf->files[i].fd);
            mf->files[i].fd = -1;
        }