TRACE("l3", "ll_remove: link item's pred %p to it's successor %p", pred, next);
node_t *other;
if ((other = SYNC_CAS(&pred->next, item, next)) != item) {
TRACE("l3", "ll_remove: unlink failed; pred's link changed from %p to %p", item, other);
// By marking the item earlier, we logically removed it. It is safe to leave the item.
TRACE("l3", "ll_remove: link item's pred %p to it's successor %p", pred, next);
node_t *other;
if ((other = SYNC_CAS(&pred->next, item, next)) != item) {
TRACE("l3", "ll_remove: unlink failed; pred's link changed from %p to %p", item, other);
// By marking the item earlier, we logically removed it. It is safe to leave the item.