diff options
| author | Nathan Bossart <nathan@postgresql.org> | 2025-12-02 16:40:23 -0600 |
|---|---|---|
| committer | Nathan Bossart <nathan@postgresql.org> | 2025-12-02 16:40:23 -0600 |
| commit | a6d05c819380b0940fcfb428aa298f2d7e76e5c6 (patch) | |
| tree | 9575fe206b4dd70a6ccf7feb07c54ccacd14200d /src/backend/utils/mmgr/dsa.c | |
| parent | cbe04e5d729f292bcf9b06f5d774884b4511b18a (diff) | |
Use LW_SHARED in dsa.c where possible.HEADorigin/masterorigin/HEADmaster
Both dsa_get_total_size() and dsa_get_total_size_from_handle() take
an exclusive lock just to read a variable. This commit reduces the
lock level to LW_SHARED in those functions.
Reviewed-by: Sami Imseih <samimseih@gmail.com>
Discussion: https://postgr.es/m/aS8fMzWs9e8iHxk2%40nathan
Diffstat (limited to 'src/backend/utils/mmgr/dsa.c')
| -rw-r--r-- | src/backend/utils/mmgr/dsa.c | 4 |
1 files 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); |
