diff options
| author | Andres Freund <andres@anarazel.de> | 2025-12-03 18:38:20 -0500 |
|---|---|---|
| committer | Andres Freund <andres@anarazel.de> | 2025-12-03 18:38:20 -0500 |
| commit | 156680055dc523425f28ff5e61acf0f5bc99294b (patch) | |
| tree | fbd4fe6288bbe2b4dd5e50fe1ffd9c91f8577f2a | |
| parent | 8d61228717e619b90b8ebd1d219d006b920e00e5 (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.c | 4 | ||||
| -rw-r--r-- | src/include/storage/bufmgr.h | 13 | ||||
| -rw-r--r-- | src/tools/pgindent/typedefs.list | 1 |
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 |
