mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-09-12 19:17:54 +02:00
c715fdea26
IPC key assignment will now work correctly even when multiple postmasters are using same logical port number (which is possible given -k switch). There is only one shared-mem segment per postmaster now, not 3. Rip out broken code for non-TAS case in bufmgr and xlog, substitute a complete S_LOCK emulation using semaphores in spin.c. TAS and non-TAS logic is now exactly the same. When deadlock is detected, "Deadlock detected" is now the elog(ERROR) message, rather than a NOTICE that comes out before an unhelpful ERROR.
36 lines
1.1 KiB
C
36 lines
1.1 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* sinval.h
|
|
* POSTGRES shared cache invalidation communication definitions.
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2000, PostgreSQL, Inc
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* $Id: sinval.h,v 1.16 2000/11/28 23:27:57 tgl Exp $
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef SINVAL_H
|
|
#define SINVAL_H
|
|
|
|
#include "storage/itemptr.h"
|
|
#include "storage/spin.h"
|
|
|
|
extern SPINLOCK SInvalLock;
|
|
|
|
extern int SInvalShmemSize(int maxBackends);
|
|
extern void CreateSharedInvalidationState(int maxBackends);
|
|
extern void InitBackendSharedInvalidationState(void);
|
|
extern void RegisterSharedInvalid(int cacheId, Index hashIndex,
|
|
ItemPointer pointer);
|
|
extern void InvalidateSharedInvalid(void (*invalFunction) (),
|
|
void (*resetFunction) ());
|
|
|
|
extern bool DatabaseHasActiveBackends(Oid databaseId, bool ignoreMyself);
|
|
extern bool TransactionIdIsInProgress(TransactionId xid);
|
|
extern void GetXmaxRecent(TransactionId *XmaxRecent);
|
|
|
|
|
|
#endif /* SINVAL_H */
|