Go to the documentation of this file.Go to the SVN repository for this file.
93 #include "implement.h"
117 HANDLE e = (
HANDLE) InterlockedCompareExchangePointer(flag, (
void *) -1, (
void *) 0);
134 if (0 == InterlockedCompareExchangePointer(flag, 0, 0)) {
138 if (0 == InterlockedCompareExchangePointer(flag, (
void *) e, (
void *) 0)) {
140 WaitForSingleObject(e, INFINITE);
189 InterlockedCompareExchangePointer((
void *
volatile*) &node->
next, 0, 0);
static DLIST_TYPE *DLIST_NAME() next(DLIST_LIST_TYPE *list, DLIST_TYPE *item)
static void ptw32_mcs_flag_set(PVOID volatile *flag)
static void ptw32_mcs_flag_wait(PVOID volatile *flag)
static void ptw32_mcs_lock_release(ptw32_mcs_local_node_t *node)
struct ptw32_mcs_node_t_ * ptw32_mcs_lock_t
static void ptw32_mcs_lock_acquire(ptw32_mcs_lock_t *lock, ptw32_mcs_local_node_t *node)
#define HANDLE
An abstraction for a file handle.
#define FALSE
bool replacment for C indicating false.
struct ptw32_mcs_node_t_ * next
struct ptw32_mcs_node_t_ ** lock