From: | "Dann Corbit" <DCorbit(at)connx(dot)com> |
---|---|
To: | "Merlin Moncure" <merlin(dot)moncure(at)rcsonline(dot)com>, "Andrew Dunstan" <andrew(at)dunslane(dot)net> |
Cc: | <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Win32 and fsync() |
Date: | 2003-02-03 23:24:02 |
Message-ID: | D90A5A6C612A39408103E6ECDD77B8294CD8D3@voyager.corporate.connx.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> -----Original Message-----
> From: Merlin Moncure [mailto:merlin(dot)moncure(at)rcsonline(dot)com]
> Sent: Monday, February 03, 2003 3:00 PM
> To: Andrew Dunstan
> Cc: pgsql-hackers(at)postgresql(dot)org
> Subject: Re: [HACKERS] Win32 and fsync()
>
>
> >I'm having difficulty digging up the reference, but I think I recall
> seeing >something that said, roughly, on W32 there are 2 sets
> of buffers
> - those in >the user level library and those in the kernel
> level driver, and >FlushFileBuffers drains the first, while
> _commit drains both (it includes a >call to FlushFileBuffers).
>
> You were correct: here is the source.
>
>
> int __cdecl _commit (
> int filedes
> )
> {
> int retval;
>
> /* if filedes out of range, complain */
> if ( ((unsigned)filedes >= (unsigned)_nhandle) ||
> !(_osfile(filedes) & FOPEN) )
> {
> errno = EBADF;
> return (-1);
> }
>
> _lock_fh(filedes);
>
> /* if filedes open, try to commit, else fall through to bad */
> if (_osfile(filedes) & FOPEN) {
>
> if (
> !FlushFileBuffers((HANDLE)_get_osfhandle(filedes))
> ) {
> retval = GetLastError();
> } else {
> retval = 0; /* return success */
> }
>
> /* map the OS return code to C errno value
> and return code */
> if (retval == 0) {
> goto good;
> } else {
> _doserrno = retval;
> goto bad;
> }
>
> }
>
> bad :
> errno = EBADF;
> retval = -1;
> good :
> _unlock_fh(filedes);
> return (retval);
> }
Where is the "other" flush besides FlushFileBuffers()?
From | Date | Subject | |
---|---|---|---|
Next Message | Gavin Sherry | 2003-02-03 23:29:23 | Re: Win32 and fsync() |
Previous Message | Gavin Sherry | 2003-02-03 23:03:46 | Re: Win32 and fsync() |