Hi, On 2023-11-13 21:54:39 -0600, Nathan Bossart wrote: > I noticed that the fallback pg_atomic_test_set_flag_impl() implementation > that uses atomic-exchange is giving pg_atomic_exchange_u32_impl() an extra > argument. This appears to be copy/pasted from the atomic-compare-exchange > version a few lines down. It looks like it's been this way since this code > was introduced in commit b64d92f (2014). Patch attached.
Oops. I guess it's not too surprising this wasn't required - if the compiler has any atomic intrinsics it's going to have support for the flag stuff. And there's practically no compiler that Are you planning to apply the fix? > I'd ordinarily suggest removing this section of code since it doesn't seem > to have gotten much coverage Which section precisely? > but I'm actually looking into adding some faster atomic-exchange > implementations that may activate this code for certain > compiler/architecture combinations. Hm. I don't really see how adding a faster atomic-exchange implementation could trigger this implementation being used? Greetings, Andres Freund