aboutsummaryrefslogtreecommitdiff
path: root/src/backend/storage/ipc
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/storage/ipc')
-rw-r--r--src/backend/storage/ipc/ipc.c21
-rw-r--r--src/backend/storage/ipc/ipci.c6
-rw-r--r--src/backend/storage/ipc/shmem.c10
-rw-r--r--src/backend/storage/ipc/sinval.c61
-rw-r--r--src/backend/storage/ipc/sinvaladt.c46
-rw-r--r--src/backend/storage/ipc/spin.c9
6 files changed, 84 insertions, 69 deletions
diff --git a/src/backend/storage/ipc/ipc.c b/src/backend/storage/ipc/ipc.c
index 4d217b36f24..27290f7dcaa 100644
--- a/src/backend/storage/ipc/ipc.c
+++ b/src/backend/storage/ipc/ipc.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.45 2000/01/26 05:56:57 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipc.c,v 1.46 2000/04/12 17:15:36 momjian Exp $
*
* NOTES
*
@@ -49,7 +49,7 @@
* so that an elog() from an on_proc_exit routine cannot get us out
* of the exit procedure. We do NOT want to go back to the idle loop...
*/
-bool proc_exit_inprogress = false;
+bool proc_exit_inprogress = false;
static int UsePrivateMemory = 0;
@@ -78,7 +78,7 @@ typedef struct _PrivateMemStruct
char *memptr;
} PrivateMem;
-static PrivateMem IpcPrivateMem[16];
+static PrivateMem IpcPrivateMem[16];
static int
@@ -117,6 +117,7 @@ PrivateMemoryAttach(IpcMemoryId memid)
void
proc_exit(int code)
{
+
/*
* Once we set this flag, we are committed to exit. Any elog() will
* NOT send control back to the main loop, but right back here.
@@ -140,7 +141,7 @@ proc_exit(int code)
*/
while (--on_proc_exit_index >= 0)
(*on_proc_exit_list[on_proc_exit_index].function) (code,
- on_proc_exit_list[on_proc_exit_index].arg);
+ on_proc_exit_list[on_proc_exit_index].arg);
TPRINTF(TRACE_VERBOSE, "exit(%d)", code);
exit(code);
@@ -166,7 +167,7 @@ shmem_exit(int code)
*/
while (--on_shmem_exit_index >= 0)
(*on_shmem_exit_list[on_shmem_exit_index].function) (code,
- on_shmem_exit_list[on_shmem_exit_index].arg);
+ on_shmem_exit_list[on_shmem_exit_index].arg);
on_shmem_exit_index = 0;
}
@@ -179,7 +180,7 @@ shmem_exit(int code)
* ----------------------------------------------------------------
*/
int
-on_proc_exit(void (*function) (), caddr_t arg)
+ on_proc_exit(void (*function) (), caddr_t arg)
{
if (on_proc_exit_index >= MAX_ON_EXITS)
return -1;
@@ -200,7 +201,7 @@ on_proc_exit(void (*function) (), caddr_t arg)
* ----------------------------------------------------------------
*/
int
-on_shmem_exit(void (*function) (), caddr_t arg)
+ on_shmem_exit(void (*function) (), caddr_t arg)
{
if (on_shmem_exit_index >= MAX_ON_EXITS)
return -1;
@@ -288,7 +289,7 @@ IpcSemaphoreCreate(IpcSemaphoreKey semKey,
/* check arguments */
if (semNum > IPC_NMAXSEM || semNum <= 0)
- return(-1);
+ return (-1);
semId = semget(semKey, 0, 0);
@@ -308,7 +309,7 @@ IpcSemaphoreCreate(IpcSemaphoreKey semKey,
"key=%d, num=%d, permission=%o",
strerror(errno), semKey, semNum, permission);
IpcConfigTip();
- return(-1);
+ return (-1);
}
for (i = 0; i < semNum; i++)
array[i] = semStartValue;
@@ -320,7 +321,7 @@ IpcSemaphoreCreate(IpcSemaphoreKey semKey,
strerror(errno), semId);
semctl(semId, 0, IPC_RMID, semun);
IpcConfigTip();
- return(-1);
+ return (-1);
}
if (removeOnExit)
diff --git a/src/backend/storage/ipc/ipci.c b/src/backend/storage/ipc/ipci.c
index 14d7d0302bd..12594484ece 100644
--- a/src/backend/storage/ipc/ipci.c
+++ b/src/backend/storage/ipc/ipci.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipci.c,v 1.32 2000/01/26 05:56:58 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/ipci.c,v 1.33 2000/04/12 17:15:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,14 +56,16 @@ CreateSharedMemoryAndSemaphores(IPCKey key, int maxBackends)
{
int size;
extern int XLOGShmemSize(void);
- extern void XLOGShmemInit(void);
+ extern void XLOGShmemInit(void);
#ifdef HAS_TEST_AND_SET
+
/*
* Create shared memory for slocks
*/
CreateAndInitSLockMemory(IPCKeyGetSLockSharedMemoryKey(key));
#endif
+
/*
* Kill and create the buffer manager buffer pool (and semaphore)
*/
diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c
index 1a4d8127553..38bf8e7c1a3 100644
--- a/src/backend/storage/ipc/shmem.c
+++ b/src/backend/storage/ipc/shmem.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.49 2000/02/26 05:25:55 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.50 2000/04/12 17:15:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -340,9 +340,9 @@ ShmemInitHash(char *name, /* table string name for shmem index */
long *location;
/*
- * Hash tables allocated in shared memory have a fixed directory;
- * it can't grow or other backends wouldn't be able to find it.
- * So, make sure we make it big enough to start with.
+ * Hash tables allocated in shared memory have a fixed directory; it
+ * can't grow or other backends wouldn't be able to find it. So, make
+ * sure we make it big enough to start with.
*
* The segbase is for calculating pointer values. The shared memory
* allocator must be specified too.
@@ -354,7 +354,7 @@ ShmemInitHash(char *name, /* table string name for shmem index */
/* look it up in the shmem index */
location = ShmemInitStruct(name,
- sizeof(HHDR) + infoP->dsize * sizeof(SEG_OFFSET),
+ sizeof(HHDR) + infoP->dsize * sizeof(SEG_OFFSET),
&found);
/*
diff --git a/src/backend/storage/ipc/sinval.c b/src/backend/storage/ipc/sinval.c
index d19fb4a40cc..62023afa01c 100644
--- a/src/backend/storage/ipc/sinval.c
+++ b/src/backend/storage/ipc/sinval.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinval.c,v 1.20 2000/01/26 05:56:58 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinval.c,v 1.21 2000/04/12 17:15:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -96,8 +96,8 @@ RegisterSharedInvalid(int cacheId, /* XXX */
Index hashIndex,
ItemPointer pointer)
{
- SharedInvalidData newInvalid;
- bool insertOK;
+ SharedInvalidData newInvalid;
+ bool insertOK;
/*
* This code has been hacked to accept two types of messages. This
@@ -121,7 +121,7 @@ RegisterSharedInvalid(int cacheId, /* XXX */
SpinAcquire(SInvalLock);
insertOK = SIInsertDataEntry(shmInvalBuffer, &newInvalid);
SpinRelease(SInvalLock);
- if (! insertOK)
+ if (!insertOK)
elog(NOTICE, "RegisterSharedInvalid: SI buffer overflow");
}
@@ -130,12 +130,12 @@ RegisterSharedInvalid(int cacheId, /* XXX */
* Process shared-cache-invalidation messages waiting for this backend
*/
void
-InvalidateSharedInvalid(void (*invalFunction) (),
- void (*resetFunction) ())
+ InvalidateSharedInvalid(void (*invalFunction) (),
+ void (*resetFunction) ())
{
- SharedInvalidData data;
- int getResult;
- bool gotMessage = false;
+ SharedInvalidData data;
+ int getResult;
+ bool gotMessage = false;
for (;;)
{
@@ -171,13 +171,13 @@ InvalidateSharedInvalid(void (*invalFunction) (),
/****************************************************************************/
-/* Functions that need to scan the PROC structures of all running backends. */
+/* Functions that need to scan the PROC structures of all running backends. */
/* It's a bit strange to keep these in sinval.c, since they don't have any */
/* direct relationship to shared-cache invalidation. But the procState */
/* array in the SI segment is the only place in the system where we have */
-/* an array of per-backend data, so it is the most convenient place to keep */
+/* an array of per-backend data, so it is the most convenient place to keep */
/* pointers to the backends' PROC structures. We used to implement these */
-/* functions with a slow, ugly search through the ShmemIndex hash table --- */
+/* functions with a slow, ugly search through the ShmemIndex hash table --- */
/* now they are simple loops over the SI ProcState array. */
/****************************************************************************/
@@ -205,7 +205,7 @@ DatabaseHasActiveBackends(Oid databaseId)
for (index = 0; index < segP->maxBackends; index++)
{
- SHMEM_OFFSET pOffset = stateP[index].procStruct;
+ SHMEM_OFFSET pOffset = stateP[index].procStruct;
if (pOffset != INVALID_OFFSET)
{
@@ -239,7 +239,7 @@ TransactionIdIsInProgress(TransactionId xid)
for (index = 0; index < segP->maxBackends; index++)
{
- SHMEM_OFFSET pOffset = stateP[index].procStruct;
+ SHMEM_OFFSET pOffset = stateP[index].procStruct;
if (pOffset != INVALID_OFFSET)
{
@@ -277,14 +277,15 @@ GetXmaxRecent(TransactionId *XmaxRecent)
for (index = 0; index < segP->maxBackends; index++)
{
- SHMEM_OFFSET pOffset = stateP[index].procStruct;
+ SHMEM_OFFSET pOffset = stateP[index].procStruct;
if (pOffset != INVALID_OFFSET)
{
PROC *proc = (PROC *) MAKE_PTR(pOffset);
TransactionId xmin;
- xmin = proc->xmin; /* we don't use spin-locking in AbortTransaction() ! */
+ xmin = proc->xmin; /* we don't use spin-locking in
+ * AbortTransaction() ! */
if (proc == MyProc || xmin < FirstTransactionId)
continue;
if (xmin < *XmaxRecent)
@@ -307,8 +308,9 @@ GetSnapshotData(bool serializable)
int index;
int count = 0;
- /* There can be no more than maxBackends active transactions,
- * so this is enough space:
+ /*
+ * There can be no more than maxBackends active transactions, so this
+ * is enough space:
*/
snapshot->xip = (TransactionId *)
malloc(segP->maxBackends * sizeof(TransactionId));
@@ -317,8 +319,8 @@ GetSnapshotData(bool serializable)
SpinAcquire(SInvalLock);
/*
- * Unfortunately, we have to call ReadNewTransactionId()
- * after acquiring SInvalLock above. It's not good because
+ * Unfortunately, we have to call ReadNewTransactionId() after
+ * acquiring SInvalLock above. It's not good because
* ReadNewTransactionId() does SpinAcquire(OidGenLockId) but
* _necessary_.
*/
@@ -326,26 +328,27 @@ GetSnapshotData(bool serializable)
for (index = 0; index < segP->maxBackends; index++)
{
- SHMEM_OFFSET pOffset = stateP[index].procStruct;
+ SHMEM_OFFSET pOffset = stateP[index].procStruct;
if (pOffset != INVALID_OFFSET)
{
PROC *proc = (PROC *) MAKE_PTR(pOffset);
TransactionId xid;
- /*
- * We don't use spin-locking when changing proc->xid
- * in GetNewTransactionId() and in AbortTransaction() !..
+ /*
+ * We don't use spin-locking when changing proc->xid in
+ * GetNewTransactionId() and in AbortTransaction() !..
*/
xid = proc->xid;
- if (proc == MyProc ||
+ if (proc == MyProc ||
xid < FirstTransactionId || xid >= snapshot->xmax)
{
+
/*
- * Seems that there is no sense to store xid >= snapshot->xmax
- * (what we got from ReadNewTransactionId above) in
- * snapshot->xip - we just assume that all xacts with such
- * xid-s are running and may be ignored.
+ * Seems that there is no sense to store xid >=
+ * snapshot->xmax (what we got from ReadNewTransactionId
+ * above) in snapshot->xip - we just assume that all xacts
+ * with such xid-s are running and may be ignored.
*/
continue;
}
diff --git a/src/backend/storage/ipc/sinvaladt.c b/src/backend/storage/ipc/sinvaladt.c
index 5075323728f..937a9ca0938 100644
--- a/src/backend/storage/ipc/sinvaladt.c
+++ b/src/backend/storage/ipc/sinvaladt.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.29 2000/03/17 02:36:21 tgl Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/sinvaladt.c,v 1.30 2000/04/12 17:15:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -53,8 +53,9 @@ SISegmentInit(bool createNewSegment, IPCKey key, int maxBackends)
/* Kill existing segment, if any */
IpcMemoryKill(key);
- /* Figure space needed.
- * Note sizeof(SISeg) includes the first ProcState entry.
+ /*
+ * Figure space needed. Note sizeof(SISeg) includes the first
+ * ProcState entry.
*/
segSize = sizeof(SISeg) + sizeof(ProcState) * (maxBackends - 1);
@@ -125,7 +126,7 @@ SISegInit(SISeg *segP, int maxBackends)
/* Mark all backends inactive */
for (i = 0; i < maxBackends; i++)
{
- segP->procState[i].nextMsgNum = -1; /* inactive */
+ segP->procState[i].nextMsgNum = -1; /* inactive */
segP->procState[i].resetState = false;
segP->procState[i].tag = InvalidBackendTag;
segP->procState[i].procStruct = INVALID_OFFSET;
@@ -143,8 +144,8 @@ SISegInit(SISeg *segP, int maxBackends)
int
SIBackendInit(SISeg *segP)
{
- int index;
- ProcState *stateP = NULL;
+ int index;
+ ProcState *stateP = NULL;
Assert(MyBackendTag > 0);
@@ -165,7 +166,8 @@ SIBackendInit(SISeg *segP)
}
}
- /* elog() with spinlock held is probably not too cool, but this
+ /*
+ * elog() with spinlock held is probably not too cool, but this
* condition should never happen anyway.
*/
if (stateP == NULL)
@@ -230,11 +232,12 @@ CleanupInvalidationState(int status,
bool
SIInsertDataEntry(SISeg *segP, SharedInvalidData *data)
{
- int numMsgs = segP->maxMsgNum - segP->minMsgNum;
+ int numMsgs = segP->maxMsgNum - segP->minMsgNum;
/* Is the buffer full? */
if (numMsgs >= MAXNUMMESSAGES)
{
+
/*
* Don't panic just yet: slowest backend might have consumed some
* messages but not yet have done SIDelExpiredDataEntries() to
@@ -254,8 +257,9 @@ SIInsertDataEntry(SISeg *segP, SharedInvalidData *data)
* Try to prevent table overflow. When the table is 70% full send a
* SIGUSR2 (ordinarily a NOTIFY signal) to the postmaster, which will
* send it back to all the backends. This will force idle backends to
- * execute a transaction to look through pg_listener for NOTIFY messages,
- * and as a byproduct of the transaction start they will read SI entries.
+ * execute a transaction to look through pg_listener for NOTIFY
+ * messages, and as a byproduct of the transaction start they will
+ * read SI entries.
*
* This should never happen if all the backends are actively executing
* queries, but if a backend is sitting idle then it won't be starting
@@ -267,7 +271,7 @@ SIInsertDataEntry(SISeg *segP, SharedInvalidData *data)
IsUnderPostmaster)
{
TPRINTF(TRACE_VERBOSE,
- "SIInsertDataEntry: table is 70%% full, signaling postmaster");
+ "SIInsertDataEntry: table is 70%% full, signaling postmaster");
kill(getppid(), SIGUSR2);
}
@@ -296,7 +300,7 @@ SISetProcStateInvalid(SISeg *segP)
for (i = 0; i < segP->maxBackends; i++)
{
- if (segP->procState[i].nextMsgNum >= 0) /* active backend? */
+ if (segP->procState[i].nextMsgNum >= 0) /* active backend? */
{
segP->procState[i].resetState = true;
segP->procState[i].nextMsgNum = 0;
@@ -318,13 +322,15 @@ int
SIGetDataEntry(SISeg *segP, int backendId,
SharedInvalidData *data)
{
- ProcState *stateP = & segP->procState[backendId - 1];
+ ProcState *stateP = &segP->procState[backendId - 1];
Assert(stateP->tag == MyBackendTag);
if (stateP->resetState)
{
- /* Force reset. We can say we have dealt with any messages added
+
+ /*
+ * Force reset. We can say we have dealt with any messages added
* since the reset, as well...
*/
stateP->resetState = false;
@@ -341,9 +347,10 @@ SIGetDataEntry(SISeg *segP, int backendId,
*data = segP->buffer[stateP->nextMsgNum % MAXNUMMESSAGES];
stateP->nextMsgNum++;
- /* There may be other backends that haven't read the message,
- * so we cannot delete it here.
- * SIDelExpiredDataEntries() should be called to remove dead messages.
+ /*
+ * There may be other backends that haven't read the message, so we
+ * cannot delete it here. SIDelExpiredDataEntries() should be called
+ * to remove dead messages.
*/
return 1; /* got a message */
}
@@ -376,8 +383,9 @@ SIDelExpiredDataEntries(SISeg *segP)
}
segP->minMsgNum = min;
- /* When minMsgNum gets really large, decrement all message counters
- * so as to forestall overflow of the counters.
+ /*
+ * When minMsgNum gets really large, decrement all message counters so
+ * as to forestall overflow of the counters.
*/
if (min >= MSGNUMWRAPAROUND)
{
diff --git a/src/backend/storage/ipc/spin.c b/src/backend/storage/ipc/spin.c
index 2892ca13a49..bab3d27b9ca 100644
--- a/src/backend/storage/ipc/spin.c
+++ b/src/backend/storage/ipc/spin.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/Attic/spin.c,v 1.23 2000/04/12 04:58:09 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/Attic/spin.c,v 1.24 2000/04/12 17:15:37 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -59,7 +59,8 @@ InitSpinLocks(void)
extern SPINLOCK SInvalLock;
extern SPINLOCK OidGenLockId;
extern SPINLOCK XidGenLockId;
- extern SPINLOCK ControlFileLockId;
+ extern SPINLOCK ControlFileLockId;
+
#ifdef STABLE_MEMORY_STORAGE
extern SPINLOCK MMCacheLock;
@@ -233,7 +234,7 @@ CreateSpinlocks(IPCKey key)
{
SpinLockId = IpcSemaphoreCreate(key, MAX_SPINS, IPCProtection,
- IpcSemaphoreDefaultStartValue, 1);
+ IpcSemaphoreDefaultStartValue, 1);
if (SpinLockId <= 0)
elog(STOP, "CreateSpinlocks: cannot create spin locks");
@@ -264,7 +265,7 @@ InitSpinLocks(void)
extern SPINLOCK SInvalLock;
extern SPINLOCK OidGenLockId;
extern SPINLOCK XidGenLockId;
- extern SPINLOCK ControlFileLockId;
+ extern SPINLOCK ControlFileLockId;
#ifdef STABLE_MEMORY_STORAGE
extern SPINLOCK MMCacheLock;