#include <vppinfra/mheap.h>
#include <vppinfra/os.h>
#include <vppinfra/time.h>
+#include <vppinfra/lock.h>
#ifdef CLIB_UNIX
#include <vppinfra/elf_clib.h>
}
while (clib_atomic_test_and_set (&h->lock))
- ;
+ CLIB_PAUSE ();
h->owner_cpu = my_cpu;
h->recursion_count = 1;
if (--h->recursion_count == 0)
{
h->owner_cpu = ~0;
- CLIB_MEMORY_BARRIER ();
- h->lock = 0;
+ clib_atomic_release (&h->lock);
}
}
}