summaryrefslogtreecommitdiff
path: root/src/backend/storage/ipc
diff options
context:
space:
mode:
authorVadim B. Mikheev <vadim4o@yahoo.com>1999-06-06 20:19:35 +0000
committerVadim B. Mikheev <vadim4o@yahoo.com>1999-06-06 20:19:35 +0000
commit1b812d93584f3a55a156ae149520e72a59cfb473 (patch)
tree3cc50b696f1344d6760c85de92911a7b981fe5b7 /src/backend/storage/ipc
parent48c1887964d259688d602c7bcd8be25b5144739b (diff)
1. xact.c: update comments about changing MyProc->xid and MyProc->xmin.
2. varsup.c:ReadNewTransactionId(): don't read nextXid from disk - this func doesn't allocate next xid, so ShmemVariableCache->nextXid may be used (but GetNewTransactionId() must be called first). 3. vacuum.c: change elog(ERROR, "Child item....") to elog(NOTICE) - this is not ERROR, proper handling is just not implemented, yet. 4. s_lock.c: increase S_MAX_BUSY by 2 times. 5. shmem.c:GetSnapshotData(): have to call ReadNewTransactionId() _after_ SpinAcquire(ShmemIndexLock).
Diffstat (limited to 'src/backend/storage/ipc')
-rw-r--r--src/backend/storage/ipc/shmem.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c
index 04cfa1a812e..e317c0e1adf 100644
--- a/src/backend/storage/ipc/shmem.c
+++ b/src/backend/storage/ipc/shmem.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.41 1999/06/03 13:33:13 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.42 1999/06/06 20:19:35 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -652,9 +652,15 @@ GetSnapshotData(bool serializable)
snapshot->xip = (TransactionId *) malloc(have * sizeof(TransactionId));
snapshot->xmin = cid;
- ReadNewTransactionId(&(snapshot->xmax));
SpinAcquire(ShmemIndexLock);
+ /*
+ * Unfortunately, we have to call ReadNewTransactionId()
+ * after acquiring ShmemIndexLock above. It's not good because of
+ * ReadNewTransactionId() does SpinAcquire(OidGenLockId) but
+ * _necessary_.
+ */
+ ReadNewTransactionId(&(snapshot->xmax));
hash_seq((HTAB *) NULL);
while ((result = (ShmemIndexEnt *) hash_seq(ShmemIndex)) != NULL)