summaryrefslogtreecommitdiff
path: root/src/backend
diff options
context:
space:
mode:
authorMagnus Hagander <magnus@hagander.net>2009-05-04 08:36:40 +0000
committerMagnus Hagander <magnus@hagander.net>2009-05-04 08:36:40 +0000
commitca6c0ac4d3da974c11866388989071f5ce821b5d (patch)
tree2cab293c335ca64350343ee81171547e61214269 /src/backend
parentffbd17e73e633cd6da462b330651b16d47963953 (diff)
downloadpostgresql-ca6c0ac4d3da974c11866388989071f5ce821b5d.tar.gz
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/backend')
-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 b3849bea0b..7cb477c6ed 100644
--- a/src/backend/port/win32_shmem.c
+++ b/src/backend/port/win32_shmem.c
@@ -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,