summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndres Freund <andres@anarazel.de>2025-12-03 18:38:20 -0500
committerAndres Freund <andres@anarazel.de>2025-12-03 18:38:20 -0500
commit156680055dc523425f28ff5e61acf0f5bc99294b (patch)
treefbd4fe6288bbe2b4dd5e50fe1ffd9c91f8577f2a
parent8d61228717e619b90b8ebd1d219d006b920e00e5 (diff)
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
-rw-r--r--src/backend/storage/buffer/bufmgr.c4
-rw-r--r--src/include/storage/bufmgr.h13
-rw-r--r--src/tools/pgindent/typedefs.list1
3 files changed, 11 insertions, 7 deletions
diff --git a/src/backend/storage/buffer/bufmgr.c b/src/backend/storage/buffer/bufmgr.c
index f373cead95f..00d9a23b675 100644
--- a/src/backend/storage/buffer/bufmgr.c
+++ b/src/backend/storage/buffer/bufmgr.c
@@ -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;
diff --git a/src/include/storage/bufmgr.h b/src/include/storage/bufmgr.h
index 9f6785910e0..97c1124c12a 100644
--- a/src/include/storage/bufmgr.h
+++ b/src/include/storage/bufmgr.h
@@ -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);
diff --git a/src/tools/pgindent/typedefs.list b/src/tools/pgindent/typedefs.list
index cf3f6a7dafd..abcb3c4c4cc 100644
--- a/src/tools/pgindent/typedefs.list
+++ b/src/tools/pgindent/typedefs.list
@@ -345,6 +345,7 @@ BufferCachePagesRec
BufferDesc
BufferDescPadded
BufferHeapTupleTableSlot
+BufferLockMode
BufferLookupEnt
BufferManagerRelation
BufferStrategyControl