MEDIUM: list: Use _HA_ATOMIC_*
Use _HA_ATOMIC_ instead of HA_ATOMIC_ because we know we don't need barriers.
This commit is contained in:
parent
17fbb4eb3f
commit
9f8d821a55
|
@ -189,10 +189,10 @@ struct cond_wordlist {
|
||||||
while (1) { \
|
while (1) { \
|
||||||
struct list *n; \
|
struct list *n; \
|
||||||
struct list *p; \
|
struct list *p; \
|
||||||
n = HA_ATOMIC_XCHG(&(lh)->n, LLIST_BUSY); \
|
n = _HA_ATOMIC_XCHG(&(lh)->n, LLIST_BUSY); \
|
||||||
if (n == LLIST_BUSY) \
|
if (n == LLIST_BUSY) \
|
||||||
continue; \
|
continue; \
|
||||||
p = HA_ATOMIC_XCHG(&n->p, LLIST_BUSY); \
|
p = _HA_ATOMIC_XCHG(&n->p, LLIST_BUSY); \
|
||||||
if (p == LLIST_BUSY) { \
|
if (p == LLIST_BUSY) { \
|
||||||
(lh)->n = n; \
|
(lh)->n = n; \
|
||||||
__ha_barrier_store(); \
|
__ha_barrier_store(); \
|
||||||
|
@ -214,10 +214,10 @@ struct cond_wordlist {
|
||||||
while (1) { \
|
while (1) { \
|
||||||
struct list *n; \
|
struct list *n; \
|
||||||
struct list *p; \
|
struct list *p; \
|
||||||
p = HA_ATOMIC_XCHG(&(lh)->p, LLIST_BUSY); \
|
p = _HA_ATOMIC_XCHG(&(lh)->p, LLIST_BUSY); \
|
||||||
if (p == LLIST_BUSY) \
|
if (p == LLIST_BUSY) \
|
||||||
continue; \
|
continue; \
|
||||||
n = HA_ATOMIC_XCHG(&p->n, LLIST_BUSY); \
|
n = _HA_ATOMIC_XCHG(&p->n, LLIST_BUSY); \
|
||||||
if (n == LLIST_BUSY) { \
|
if (n == LLIST_BUSY) { \
|
||||||
(lh)->p = p; \
|
(lh)->p = p; \
|
||||||
__ha_barrier_store(); \
|
__ha_barrier_store(); \
|
||||||
|
@ -239,17 +239,17 @@ struct cond_wordlist {
|
||||||
while (1) { \
|
while (1) { \
|
||||||
struct list *n, *n2; \
|
struct list *n, *n2; \
|
||||||
struct list *p, *p2 = NULL; \
|
struct list *p, *p2 = NULL; \
|
||||||
n = HA_ATOMIC_XCHG(&(el)->n, LLIST_BUSY); \
|
n = _HA_ATOMIC_XCHG(&(el)->n, LLIST_BUSY); \
|
||||||
if (n == LLIST_BUSY) \
|
if (n == LLIST_BUSY) \
|
||||||
continue; \
|
continue; \
|
||||||
p = HA_ATOMIC_XCHG(&(el)->p, LLIST_BUSY); \
|
p = _HA_ATOMIC_XCHG(&(el)->p, LLIST_BUSY); \
|
||||||
if (p == LLIST_BUSY) { \
|
if (p == LLIST_BUSY) { \
|
||||||
(el)->n = n; \
|
(el)->n = n; \
|
||||||
__ha_barrier_store(); \
|
__ha_barrier_store(); \
|
||||||
continue; \
|
continue; \
|
||||||
} \
|
} \
|
||||||
if (p != (el)) { \
|
if (p != (el)) { \
|
||||||
p2 = HA_ATOMIC_XCHG(&p->n, LLIST_BUSY); \
|
p2 = _HA_ATOMIC_XCHG(&p->n, LLIST_BUSY); \
|
||||||
if (p2 == LLIST_BUSY) { \
|
if (p2 == LLIST_BUSY) { \
|
||||||
(el)->p = p; \
|
(el)->p = p; \
|
||||||
(el)->n = n; \
|
(el)->n = n; \
|
||||||
|
@ -258,7 +258,7 @@ struct cond_wordlist {
|
||||||
} \
|
} \
|
||||||
} \
|
} \
|
||||||
if (n != (el)) { \
|
if (n != (el)) { \
|
||||||
n2 = HA_ATOMIC_XCHG(&n->p, LLIST_BUSY); \
|
n2 = _HA_ATOMIC_XCHG(&n->p, LLIST_BUSY); \
|
||||||
if (n2 == LLIST_BUSY) { \
|
if (n2 == LLIST_BUSY) { \
|
||||||
if (p2 != NULL) \
|
if (p2 != NULL) \
|
||||||
p->n = p2; \
|
p->n = p2; \
|
||||||
|
@ -286,7 +286,7 @@ struct cond_wordlist {
|
||||||
while (1) { \
|
while (1) { \
|
||||||
struct list *n, *n2; \
|
struct list *n, *n2; \
|
||||||
struct list *p, *p2; \
|
struct list *p, *p2; \
|
||||||
n = HA_ATOMIC_XCHG(&(lh)->n, LLIST_BUSY); \
|
n = _HA_ATOMIC_XCHG(&(lh)->n, LLIST_BUSY); \
|
||||||
if (n == LLIST_BUSY) \
|
if (n == LLIST_BUSY) \
|
||||||
continue; \
|
continue; \
|
||||||
if (n == (lh)) { \
|
if (n == (lh)) { \
|
||||||
|
@ -295,13 +295,13 @@ struct cond_wordlist {
|
||||||
_ret = NULL; \
|
_ret = NULL; \
|
||||||
break; \
|
break; \
|
||||||
} \
|
} \
|
||||||
p = HA_ATOMIC_XCHG(&n->p, LLIST_BUSY); \
|
p = _HA_ATOMIC_XCHG(&n->p, LLIST_BUSY); \
|
||||||
if (p == LLIST_BUSY) { \
|
if (p == LLIST_BUSY) { \
|
||||||
(lh)->n = n; \
|
(lh)->n = n; \
|
||||||
__ha_barrier_store(); \
|
__ha_barrier_store(); \
|
||||||
continue; \
|
continue; \
|
||||||
} \
|
} \
|
||||||
n2 = HA_ATOMIC_XCHG(&n->n, LLIST_BUSY); \
|
n2 = _HA_ATOMIC_XCHG(&n->n, LLIST_BUSY); \
|
||||||
if (n2 == LLIST_BUSY) { \
|
if (n2 == LLIST_BUSY) { \
|
||||||
n->p = p; \
|
n->p = p; \
|
||||||
__ha_barrier_store(); \
|
__ha_barrier_store(); \
|
||||||
|
@ -309,7 +309,7 @@ struct cond_wordlist {
|
||||||
__ha_barrier_store(); \
|
__ha_barrier_store(); \
|
||||||
continue; \
|
continue; \
|
||||||
} \
|
} \
|
||||||
p2 = HA_ATOMIC_XCHG(&n2->p, LLIST_BUSY); \
|
p2 = _HA_ATOMIC_XCHG(&n2->p, LLIST_BUSY); \
|
||||||
if (p2 == LLIST_BUSY) { \
|
if (p2 == LLIST_BUSY) { \
|
||||||
n->n = n2; \
|
n->n = n2; \
|
||||||
n->p = p; \
|
n->p = p; \
|
||||||
|
|
Loading…
Reference in New Issue