From 8f1555e690132a97ac52f1c07a2f943e59d98fd6 Mon Sep 17 00:00:00 2001 From: Magnus Hagander Date: Mon, 4 May 2009 08:36:44 +0000 Subject: [PATCH] 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. --- src/backend/port/win32_shmem.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/backend/port/win32_shmem.c b/src/backend/port/win32_shmem.c index 394eb976f0..8c61a9aa85 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, -- 2.50.1