File: osync.cc

package info (click to toggle)
bobcat 6.11.00-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 15,292 kB
  • sloc: cpp: 21,370; fortran: 6,507; makefile: 2,787; sh: 724; perl: 401; ansic: 26
file content (28 lines) | stat: -rw-r--r-- 728 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#define XERR
#include "mapbase.ih"

void MapBase::osync()
{
    if (not d_mMapped)
        return;

    size_t nWritten = pptr() - d_cp ;   // #bytes written into the buffer

//xerr("file size " << d_fileSize << ", offset: " << d_offset << \X========
//", nWritten: " << nWritten);


    if (nWritten > 0)                   // some bytes were written
    {
        if (msync(d_cp, nWritten, MS_SYNC) != 0)
            cerr << "msync " << d_fname << ": from " << d_offset <<
                    ", nBytes = " << nWritten << " failed\n";

        if (size_t size = d_offset + nWritten; d_fileSize < size)
{//xerr("enlarging file size from " << d_fileSize << " to " << size);
            d_fileSize = size;
}
    }
    unmap();
}