On 10/05/19 8:57 PM, Willy Tarreau wrote: > On Thu, May 09, 2019 at 05:07:40PM +1200, Chris Packham wrote: >> __ha_cas_dw() is used in fd_rm_from_fd_list() and when built without >> USE_THREADS=1 the linker fails to find __ha_cas_dw(). Add a definition >> of __ha_cas_dw() for the #ifndef USE_THREADS case. > > Just found your patch, I think it's indeed OK to fall back to > HA_ATOMIC_CAS in this case since we won't use atomic instructions. > I'd like that we do a bit of tidying in this area so that it's > clearer which functions are always atomic and which ones possibly > are not, but for now that's OK. I've merged it now.
Actually I think there's an additional change needed in my patch. By passing the parameters to HA_ATOMIC_CAS we end up attempting to dereference a void *. So this should needs to cast to a proper type. For what it's worth I'll send a v2 that does this.

