Better document win32_open and its ability to allow concurrent
unlink/rename().
This commit is contained in:
parent
1311667b5c
commit
edb1ba113d
@ -10,7 +10,7 @@
|
|||||||
* Win32 (NT, Win2k, XP). replace() doesn't work on Win95/98/Me.
|
* Win32 (NT, Win2k, XP). replace() doesn't work on Win95/98/Me.
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/port/dirmod.c,v 1.29 2004/10/17 23:39:22 momjian Exp $
|
* $PostgreSQL: pgsql/src/port/dirmod.c,v 1.30 2004/10/17 23:53:30 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -68,7 +68,7 @@ pgrename(const char *from, const char *to)
|
|||||||
{
|
{
|
||||||
int loops = 0;
|
int loops = 0;
|
||||||
|
|
||||||
/* Is this loop even necessary? */
|
/* Is this loop even necessary now that we have win32_open()? */
|
||||||
#if defined(WIN32) && !defined(__CYGWIN__)
|
#if defined(WIN32) && !defined(__CYGWIN__)
|
||||||
while (!MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING))
|
while (!MoveFileEx(from, to, MOVEFILE_REPLACE_EXISTING))
|
||||||
#endif
|
#endif
|
||||||
@ -114,7 +114,7 @@ pgunlink(const char *path)
|
|||||||
{
|
{
|
||||||
int loops = 0;
|
int loops = 0;
|
||||||
|
|
||||||
/* Is this loop even necessary? */
|
/* Is this loop even necessary now that we have win32_open()? */
|
||||||
while (unlink(path))
|
while (unlink(path))
|
||||||
{
|
{
|
||||||
if (errno != EACCES)
|
if (errno != EACCES)
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2004, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/port/open.c,v 1.4 2004/08/29 05:07:02 momjian Exp $
|
* $PostgreSQL: pgsql/src/port/open.c,v 1.5 2004/10/17 23:53:30 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -71,6 +71,7 @@ win32_open(const char *fileName, int fileFlags,...)
|
|||||||
/* cannot use O_RDONLY, as it == 0 */
|
/* cannot use O_RDONLY, as it == 0 */
|
||||||
(fileFlags & O_RDWR) ? (GENERIC_WRITE | GENERIC_READ) :
|
(fileFlags & O_RDWR) ? (GENERIC_WRITE | GENERIC_READ) :
|
||||||
((fileFlags & O_WRONLY) ? GENERIC_WRITE : GENERIC_READ),
|
((fileFlags & O_WRONLY) ? GENERIC_WRITE : GENERIC_READ),
|
||||||
|
/* These flags allow concurrent rename/unlink */
|
||||||
(FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE),
|
(FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE),
|
||||||
&sa,
|
&sa,
|
||||||
openFlagsToCreateFileFlags(fileFlags),
|
openFlagsToCreateFileFlags(fileFlags),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user