* @param tl
* A pointer to the ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_init(rte_ticketlock_t *tl)
{
__atomic_store_n(&tl->tickets, 0, __ATOMIC_RELAXED);
* @param tl
* A pointer to the ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_lock(rte_ticketlock_t *tl)
{
uint16_t me = __atomic_fetch_add(&tl->s.next, 1, __ATOMIC_RELAXED);
- while (__atomic_load_n(&tl->s.current, __ATOMIC_ACQUIRE) != me)
- rte_pause();
+ rte_wait_until_equal_16(&tl->s.current, me, __ATOMIC_ACQUIRE);
}
/**
* @param tl
* A pointer to the ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_unlock(rte_ticketlock_t *tl)
{
uint16_t i = __atomic_load_n(&tl->s.current, __ATOMIC_RELAXED);
* @return
* 1 if the lock is successfully taken; 0 otherwise.
*/
-static inline __rte_experimental int
+__rte_experimental
+static inline int
rte_ticketlock_trylock(rte_ticketlock_t *tl)
{
rte_ticketlock_t old, new;
* @return
* 1 if the lock is currently taken; 0 otherwise.
*/
-static inline __rte_experimental int
+__rte_experimental
+static inline int
rte_ticketlock_is_locked(rte_ticketlock_t *tl)
{
rte_ticketlock_t tic;
* @param tlr
* A pointer to the recursive ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_recursive_init(rte_ticketlock_recursive_t *tlr)
{
rte_ticketlock_init(&tlr->tl);
* @param tlr
* A pointer to the recursive ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_recursive_lock(rte_ticketlock_recursive_t *tlr)
{
int id = rte_gettid();
* @param tlr
* A pointer to the recursive ticketlock.
*/
-static inline __rte_experimental void
+__rte_experimental
+static inline void
rte_ticketlock_recursive_unlock(rte_ticketlock_recursive_t *tlr)
{
if (--(tlr->count) == 0) {
* @return
* 1 if the lock is successfully taken; 0 otherwise.
*/
-static inline __rte_experimental int
+__rte_experimental
+static inline int
rte_ticketlock_recursive_trylock(rte_ticketlock_recursive_t *tlr)
{
int id = rte_gettid();