user_thread
struct user_thread* team_allocate_user_thread(Team* team);
void team_free_user_thread(Team* team, struct user_thread* userThread);
struct user_thread* thread;
struct user_thread* user_thread; // write-protected by fLock, only
struct user_thread; // defined in libroot/user_thread.h
static inline struct user_thread*
return (struct user_thread*)tls_get(TLS_USER_THREAD_SLOT);
struct user_thread* thread = get_user_thread();
if (thread->user_thread->defer_signals > 0
thread->user_thread->pending_signals = signalMask;
thread->user_thread->pending_signals = 0;
user_thread* userThread = team_allocate_user_thread(team);
currentThread->user_thread = userThread;
thread->user_thread = team_allocate_user_thread(team);
if (thread->user_thread == NULL) {
struct user_thread*
user_thread* thread = entry->thread;
size_t needed = ROUNDUP(sizeof(user_thread), CACHE_LINE_SIZE);
user_thread* thread
= (user_thread*)(team->user_data + team->used_user_data);
team_free_user_thread(Team* team, struct user_thread* userThread)
if (thread->user_thread == NULL) {
thread->user_thread = team_allocate_user_thread(team);
if (thread->user_thread == NULL)
user_thread* userThread = thread->user_thread;
thread->user_thread = NULL;
kprintf("user_thread: %p\n", (void *)thread->user_thread);
user_thread* userThread = thread->user_thread;
thread->user_thread = NULL;
thread->user_thread = NULL;
user_thread(NULL),
if (thread->user_thread == NULL)
if (user_memcpy(&waitStatus, &thread->user_thread->wait_status,
if (user_memcpy(&thread->user_thread->wait_status, &status,
if (user_memcpy(&waitStatus, &thread->user_thread->wait_status,
if (user_memcpy(&oldStatus, &thread->user_thread->wait_status,
if (user_memcpy(&thread->user_thread->wait_status, &status,
user_thread* userThread = thread->user_thread;
tls[TLS_USER_THREAD_SLOT] = (addr_t)thread->user_thread;
user_thread* userThread;
user_thread* userThread = get_user_thread();
struct user_thread *t = get_user_thread();