do {
unsigned int next;
- volatile Anchor* value;
- value = (volatile Anchor *)&desc->anchor.value;
- old_anchor = *(Anchor *)value;
- new_anchor = old_anchor;
+ new_anchor = old_anchor = *(volatile Anchor*)&desc->anchor.value;
if (old_anchor.data.state == STATE_EMPTY) {
/* We must free it because we own it. */
desc_retire (desc);
sb = desc->sb;
do {
- volatile Anchor* value;
- value = (volatile Anchor *)&desc->anchor.value;
- old_anchor = *(Anchor *)value;
- new_anchor = old_anchor;
+ new_anchor = old_anchor = *(volatile Anchor*)&desc->anchor.value;
*(unsigned int*)ptr = old_anchor.data.avail;
new_anchor.data.avail = ((char*)ptr - (char*)sb) / desc->slot_size;
g_assert (new_anchor.data.avail < LOCK_FREE_ALLOC_SB_USABLE_SIZE (block_size) / desc->slot_size);