wake_addr
&td->wake_addr->value;
waddr = &td->wake_addr->value;
&td->wake_addr->value;
ba->waddrs[ba->count++] = &td->wake_addr->value;
struct wake_addr *
struct wake_addr *p;
struct wake_addr *pp = (struct wake_addr *)
for (i = 1; i < pagesize/sizeof(struct wake_addr); ++i)
_thr_release_wake_addr(struct wake_addr *wa)
if (curthread->wake_addr->value != 0)
return _thr_umtx_timedwait_uint(&curthread->wake_addr->value, 0,
static struct wake_addr *wake_addr_head;
static struct wake_addr default_wake_addr;
(thread->wake_addr = _thr_alloc_wake_addr()) == NULL) {
if (thread->wake_addr != NULL)
_thr_release_wake_addr(thread->wake_addr);
struct wake_addr *link;
#define _pthread_endzero wake_addr
struct wake_addr *wake_addr;
#define WAKE_ADDR(td) ((td)->wake_addr)
struct wake_addr *_thr_alloc_wake_addr(void);
void _thr_release_wake_addr(struct wake_addr *);
td->wake_addr->value = 0;
return td->wake_addr->value != 0;