Thread

  1. [PATCH v1 1/1] use LW_SHARED in dsa.c when appropriate

    Nathan Bossart <nathan@postgresql.org> — 2025-12-02T17:16:17Z

    ---
     src/backend/utils/mmgr/dsa.c | 4 ++--
     1 file changed, 2 insertions(+), 2 deletions(-)
    
    diff --git a/src/backend/utils/mmgr/dsa.c b/src/backend/utils/mmgr/dsa.c
    index c8a72686177..4b6bcffea28 100644
    --- a/src/backend/utils/mmgr/dsa.c
    +++ b/src/backend/utils/mmgr/dsa.c
    @@ -1043,7 +1043,7 @@ dsa_get_total_size(dsa_area *area)
     {
     	size_t		size;
     
    -	LWLockAcquire(DSA_AREA_LOCK(area), LW_EXCLUSIVE);
    +	LWLockAcquire(DSA_AREA_LOCK(area), LW_SHARED);
     	size = area->control->total_segment_size;
     	LWLockRelease(DSA_AREA_LOCK(area));
     
    @@ -1075,7 +1075,7 @@ dsa_get_total_size_from_handle(dsa_handle handle)
     
     	control = (dsa_area_control *) dsm_segment_address(segment);
     
    -	LWLockAcquire(&control->lock, LW_EXCLUSIVE);
    +	LWLockAcquire(&control->lock, LW_SHARED);
     	size = control->total_segment_size;
     	LWLockRelease(&control->lock);
     
    -- 
    2.39.5 (Apple Git-154)
    
    
    --Y0C3mDk/H/BLnDiq--