summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2009-05-04 08:36:44 +0000
committerMagnus Hagander <magnus@hagander.net>2009-05-04 08:36:44 +0000
commit8f1555e690132a97ac52f1c07a2f943e59d98fd6 (patch)
tree57edb14bcaf05f044fe0b1e088623ec680546370 /src
parent4df4ffe326715490dcb1fc8313132b073fd1a0dc (diff)
Call SetLastError(0) before calling the file mapping functions
to make sure that the error code is reset, as a precaution in case the API doesn't properly reset it on success. This could be necessary, since we check the error value even if the function doesn't fail for specific success cases.
Diffstat (limited to 'src')
-rw-r--r--src/backend/port/win32_shmem.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/port/win32_shmem.c b/src/backend/port/win32_shmem.c
index 394eb976f04..8c61a9aa85e 100644
--- a/src/backend/port/win32_shmem.c
+++ b/src/backend/port/win32_shmem.c
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2008, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/port/win32_shmem.c,v 1.4.2.2 2008/10/30 17:04:11 mha Exp $
+ * $PostgreSQL: pgsql/src/backend/port/win32_shmem.c,v 1.4.2.3 2009/05/04 08:36:44 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,