summaryrefslogtreecommitdiff
path: root/src/backend/postmaster
diff options
context:
space:
mode:
authorTom Lane2002-05-05 00:03:29 +0000
committerTom Lane2002-05-05 00:03:29 +0000
commit72a3902a664c7fbceb2034e28e444b28f96fa717 (patch)
treeff42e4494af6ea1c1cdf524f3feb5fc670217f0c /src/backend/postmaster
parent91fc10fdacfcbadc123fd9d8ee16a4568f8c636b (diff)
Create an internal semaphore API that is not tied to SysV semaphores.
As proof of concept, provide an alternate implementation based on POSIX semaphores. Also push the SysV shared-memory implementation into a separate file so that it can be replaced conveniently.
Diffstat (limited to 'src/backend/postmaster')
-rw-r--r--src/backend/postmaster/pgstat.c3
-rw-r--r--src/backend/postmaster/postmaster.c17
2 files changed, 9 insertions, 11 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index 8f13a9d674d..15fbc31e601 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -16,7 +16,7 @@
*
* Copyright (c) 2001, PostgreSQL Global Development Group
*
- * $Header: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v 1.19 2002/04/03 00:27:25 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/pgstat.c,v 1.20 2002/05/05 00:03:28 tgl Exp $
* ----------
*/
#include "postgres.h"
@@ -44,6 +44,7 @@
#include "miscadmin.h"
#include "utils/memutils.h"
#include "storage/backendid.h"
+#include "storage/ipc.h"
#include "utils/rel.h"
#include "utils/hsearch.h"
#include "utils/ps_status.h"
diff --git a/src/backend/postmaster/postmaster.c b/src/backend/postmaster/postmaster.c
index 0ce817b5b39..a3a8f2521e5 100644
--- a/src/backend/postmaster/postmaster.c
+++ b/src/backend/postmaster/postmaster.c
@@ -37,7 +37,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.272 2002/04/04 04:25:48 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/postmaster/postmaster.c,v 1.273 2002/05/05 00:03:28 tgl Exp $
*
* NOTES
*
@@ -1362,17 +1362,14 @@ static void
reset_shared(unsigned short port)
{
/*
- * Reset assignment of shared mem and semaphore IPC keys. Doing this
- * means that in normal cases we'll assign the same keys on each
- * "cycle of life", and thereby avoid leaving dead IPC objects
- * floating around if the postmaster crashes and is restarted.
- */
- IpcInitKeyAssignment(port);
-
- /*
* Create or re-create shared memory and semaphores.
+ *
+ * Note: in each "cycle of life" we will normally assign the same IPC
+ * keys (if using SysV shmem and/or semas), since the port number is
+ * used to determine IPC keys. This helps ensure that we will clean up
+ * dead IPC objects if the postmaster crashes and is restarted.
*/
- CreateSharedMemoryAndSemaphores(false, MaxBackends);
+ CreateSharedMemoryAndSemaphores(false, MaxBackends, port);
}