]> granicus.if.org Git - postgresql/blobdiff - src/backend/port/win32_shmem.c
Call SetLastError(0) before calling the file mapping functions
[postgresql] / src / backend / port / win32_shmem.c
index b3849bea0b76f9e144f1f710e6c2bea676f75ad6..7cb477c6ed07319f490aaf754a6dacac61b53b96 100644 (file)
@@ -6,7 +6,7 @@
  * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group
  *
  * IDENTIFICATION
- *       $PostgreSQL: pgsql/src/backend/port/win32_shmem.c,v 1.7 2009/01/01 17:23:46 momjian Exp $
+ *       $PostgreSQL: pgsql/src/backend/port/win32_shmem.c,v 1.8 2009/05/04 08:36:40 mha Exp $
  *
  *-------------------------------------------------------------------------
  */
@@ -131,6 +131,9 @@ PGSharedMemoryCreate(Size size, bool makePrivate, int port)
 
        UsedShmemSegAddr = NULL;
 
+       /* In case CreateFileMapping() doesn't set the error code to 0 on success */
+       SetLastError(0);
+
        hmap = CreateFileMapping((HANDLE) 0xFFFFFFFF,           /* Use the pagefile */
                                                         NULL,          /* Default security attrs */
                                                         PAGE_READWRITE,        /* Memory is Read/Write */
@@ -160,6 +163,9 @@ PGSharedMemoryCreate(Size size, bool makePrivate, int port)
 
                Sleep(1000);
 
+               /* In case CreateFileMapping() doesn't set the error code to 0 on success */
+               SetLastError(0);
+
                hmap = CreateFileMapping((HANDLE) 0xFFFFFFFF, NULL, PAGE_READWRITE, 0L, (DWORD) size, szShareMem);
                if (!hmap)
                        ereport(FATAL,