Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Fix fallback implementation for pg_atomic_test_set_flag().
authorNathan Bossart <nathan@postgresql.org>
Wed, 15 Nov 2023 21:04:18 +0000 (15:04 -0600)
committerNathan Bossart <nathan@postgresql.org>
Wed, 15 Nov 2023 21:04:47 +0000 (15:04 -0600)
The fallback implementation of pg_atomic_test_set_flag() that uses
atomic-exchange gives pg_atomic_exchange_u32_impl() an extra
argument.  This issue has been present since the introduction of
the atomics API in commit b64d92f1a5.

Reviewed-by: Andres Freund
Discussion: https://postgr.es/m/20231114035439.GA1809032%40nathanxps13
Backpatch-through: 12

src/include/port/atomics/generic.h

index 33cb0cface533bc41a78f363208a21e87615d8ae..ad7d1624c8b7237d6cd5499f7db296e111da9f62 100644 (file)
@@ -83,7 +83,7 @@ pg_atomic_init_flag_impl(volatile pg_atomic_flag *ptr)
 static inline bool
 pg_atomic_test_set_flag_impl(volatile pg_atomic_flag *ptr)
 {
-   return pg_atomic_exchange_u32_impl(ptr, &value, 1) == 0;
+   return pg_atomic_exchange_u32_impl(ptr, 1) == 0;
 }
 
 #define PG_HAVE_ATOMIC_UNLOCKED_TEST_FLAG