|
|
@ -723,16 +723,6 @@ typedef struct ck_spinlock_mcs * ck_spinlock_mcs_t;
|
|
|
|
typedef struct ck_spinlock_mcs ck_spinlock_mcs_context_t;
|
|
|
|
typedef struct ck_spinlock_mcs ck_spinlock_mcs_context_t;
|
|
|
|
|
|
|
|
|
|
|
|
#define CK_SPINLOCK_MCS_INITIALIZER (NULL)
|
|
|
|
#define CK_SPINLOCK_MCS_INITIALIZER (NULL)
|
|
|
|
#define CK_SPINLOCK_MCS_CONTEXT_INITIALIZER {false, NULL}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CK_CC_INLINE static void
|
|
|
|
|
|
|
|
ck_spinlock_mcs_context_init(struct ck_spinlock_mcs *queue)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ck_pr_store_uint(&queue->locked, false);
|
|
|
|
|
|
|
|
ck_pr_store_ptr(&queue->next, NULL);
|
|
|
|
|
|
|
|
return;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CK_CC_INLINE static bool
|
|
|
|
CK_CC_INLINE static bool
|
|
|
|
ck_spinlock_mcs_trylock(struct ck_spinlock_mcs **queue, struct ck_spinlock_mcs *node)
|
|
|
|
ck_spinlock_mcs_trylock(struct ck_spinlock_mcs **queue, struct ck_spinlock_mcs *node)
|
|
|
|