X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Fvppinfra%2Fmheap.c;h=b5566bd6389a894091472bf3cf9606cba8e55c95;hb=a6ef36b2c25de47824a1b45e147ab2fbf67c3a33;hp=ba5bbc9b6e77be53fa6beebf8e4ad720530f825e;hpb=b7b929931a07fbb27b43d5cd105f366c3e29807e;p=vpp.git diff --git a/src/vppinfra/mheap.c b/src/vppinfra/mheap.c index ba5bbc9b6e7..b5566bd6389 100644 --- a/src/vppinfra/mheap.c +++ b/src/vppinfra/mheap.c @@ -41,6 +41,7 @@ #include #include #include +#include #ifdef CLIB_UNIX #include @@ -64,7 +65,7 @@ mheap_maybe_lock (void *v) } while (clib_atomic_test_and_set (&h->lock)) - ; + CLIB_PAUSE (); h->owner_cpu = my_cpu; h->recursion_count = 1; @@ -81,8 +82,7 @@ mheap_maybe_unlock (void *v) if (--h->recursion_count == 0) { h->owner_cpu = ~0; - CLIB_MEMORY_BARRIER (); - h->lock = 0; + clib_atomic_release (&h->lock); } } }