mirror of
https://github.com/postgres/postgres.git
synced 2025-12-07 12:02:30 +03:00
bufmgr: Turn BUFFER_LOCK_* into an enum
It seems cleaner to use an enum to tie the different values together. It also helps to have a more descriptive type in the argument to various functions. Reviewed-by: Melanie Plageman <melanieplageman@gmail.com> Discussion: https://postgr.es/m/fvfmkr5kk4nyex56ejgxj3uzi63isfxovp2biecb4bspbjrze7@az2pljabhnff
This commit is contained in:
@@ -2866,7 +2866,7 @@ BufferIsLockedByMe(Buffer buffer)
|
||||
* Buffer must be pinned.
|
||||
*/
|
||||
bool
|
||||
BufferIsLockedByMeInMode(Buffer buffer, int mode)
|
||||
BufferIsLockedByMeInMode(Buffer buffer, BufferLockMode mode)
|
||||
{
|
||||
BufferDesc *bufHdr;
|
||||
|
||||
@@ -5601,7 +5601,7 @@ UnlockBuffers(void)
|
||||
* Acquire or release the content_lock for the buffer.
|
||||
*/
|
||||
void
|
||||
LockBuffer(Buffer buffer, int mode)
|
||||
LockBuffer(Buffer buffer, BufferLockMode mode)
|
||||
{
|
||||
BufferDesc *buf;
|
||||
|
||||
|
||||
@@ -200,9 +200,12 @@ extern PGDLLIMPORT int32 *LocalRefCount;
|
||||
/*
|
||||
* Buffer content lock modes (mode argument for LockBuffer())
|
||||
*/
|
||||
#define BUFFER_LOCK_UNLOCK 0
|
||||
#define BUFFER_LOCK_SHARE 1
|
||||
#define BUFFER_LOCK_EXCLUSIVE 2
|
||||
typedef enum BufferLockMode
|
||||
{
|
||||
BUFFER_LOCK_UNLOCK,
|
||||
BUFFER_LOCK_SHARE,
|
||||
BUFFER_LOCK_EXCLUSIVE,
|
||||
} BufferLockMode;
|
||||
|
||||
|
||||
/*
|
||||
@@ -238,7 +241,7 @@ extern void WaitReadBuffers(ReadBuffersOperation *operation);
|
||||
extern void ReleaseBuffer(Buffer buffer);
|
||||
extern void UnlockReleaseBuffer(Buffer buffer);
|
||||
extern bool BufferIsLockedByMe(Buffer buffer);
|
||||
extern bool BufferIsLockedByMeInMode(Buffer buffer, int mode);
|
||||
extern bool BufferIsLockedByMeInMode(Buffer buffer, BufferLockMode mode);
|
||||
extern bool BufferIsDirty(Buffer buffer);
|
||||
extern void MarkBufferDirty(Buffer buffer);
|
||||
extern void IncrBufferRefCount(Buffer buffer);
|
||||
@@ -299,7 +302,7 @@ extern void BufferGetTag(Buffer buffer, RelFileLocator *rlocator,
|
||||
extern void MarkBufferDirtyHint(Buffer buffer, bool buffer_std);
|
||||
|
||||
extern void UnlockBuffers(void);
|
||||
extern void LockBuffer(Buffer buffer, int mode);
|
||||
extern void LockBuffer(Buffer buffer, BufferLockMode mode);
|
||||
extern bool ConditionalLockBuffer(Buffer buffer);
|
||||
extern void LockBufferForCleanup(Buffer buffer);
|
||||
extern bool ConditionalLockBufferForCleanup(Buffer buffer);
|
||||
|
||||
@@ -345,6 +345,7 @@ BufferCachePagesRec
|
||||
BufferDesc
|
||||
BufferDescPadded
|
||||
BufferHeapTupleTableSlot
|
||||
BufferLockMode
|
||||
BufferLookupEnt
|
||||
BufferManagerRelation
|
||||
BufferStrategyControl
|
||||
|
||||
Reference in New Issue
Block a user