Salut, On Mon, Sep 13, 2004 at 06:03:28PM +0200, Roman Zippel wrote: > +#define atomic_add_and_test(i,v) (atomic_add_return((i), (v)) == 0) > +#define atomic_sub_and_test(i,v) (atomic_sub_return((i), (v)) == 0) This is no longer atomic, is it? I mean, there's no guarantee that the atomic_add_return and the comparison are executed without interruption, is there? I wonder whether it's supposed to be.. > #define atomic_sub(i, v) atomic_sub_return(i, v) Maybe for some compilers we should cast away the result? Tonnerre