diff options
author | Vadim B. Mikheev <vadim4o@yahoo.com> | 1999-06-06 20:19:35 +0000 |
---|---|---|
committer | Vadim B. Mikheev <vadim4o@yahoo.com> | 1999-06-06 20:19:35 +0000 |
commit | 1b812d93584f3a55a156ae149520e72a59cfb473 (patch) | |
tree | 3cc50b696f1344d6760c85de92911a7b981fe5b7 /src/backend/storage/ipc | |
parent | 48c1887964d259688d602c7bcd8be25b5144739b (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.c | 10 |
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) |