Messages in this thread | | | Date | Wed, 14 Sep 2005 19:18:31 +0200 (CEST) | From | Roman Zippel <> | Subject | Re: [PATCH 2/5] atomic: introduce atomic_inc_not_zero |
| |
Hi,
On Thu, 15 Sep 2005, Nick Piggin wrote:
> Or here is possible pseudo code for an architecture with ll/sc > instructions: > > do { > tmp = load_locked(v); > if (!tmp) > break; > tmp++; > } while (!store_cond(v, tmp)); > > return tmp; > > As opposed to using the cmpxchg version, which would have more > loads and conditional branches, AFAIKS.
I'd prefer to generalize this construct, than polluting atomic.h with all kinds of esoteric atomic operations. So you would get:
do { old = atomic_load_locked(v); if (!old) break; new = old + 1; } while (!atomic_store_lock(v, old, new));
bye, Roman - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |