PatchworkOS
Loading...
Searching...
No Matches
wait.c File Reference
#include <kernel/sched/wait.h>
#include <kernel/cpu/cpu.h>
#include <kernel/cpu/smp.h>
#include <kernel/log/panic.h>
#include <kernel/sched/sched.h>
#include <kernel/sched/thread.h>
#include <kernel/sched/timer.h>
#include <kernel/sync/lock.h>
#include <assert.h>
#include <errno.h>
#include <stdatomic.h>
#include <stdlib.h>
#include <sys/list.h>

Go to the source code of this file.

Functions

static void wait_remove_wait_entries (thread_t *thread, errno_t err)
 
static void wait_timer_handler (interrupt_frame_t *frame, cpu_t *self)
 
void wait_queue_init (wait_queue_t *waitQueue)
 Initialize wait queue.
 
void wait_queue_deinit (wait_queue_t *waitQueue)
 Deinitialize wait queue.
 
void wait_thread_ctx_init (wait_thread_ctx_t *wait)
 Initialize per-thread wait context.
 
void wait_cpu_ctx_init (wait_cpu_ctx_t *wait, cpu_t *self)
 Initialize per-CPU wait context.
 
bool wait_block_finalize (interrupt_frame_t *frame, cpu_t *self, thread_t *thread, clock_t uptime)
 Finalize blocking of a thread.
 
void wait_unblock_thread (thread_t *thread, errno_t err)
 Unblock a specific thread.
 
uint64_t wait_unblock (wait_queue_t *waitQueue, uint64_t amount, errno_t err)
 Unblock threads waiting on a wait queue.
 
uint64_t wait_block_setup (wait_queue_t **waitQueues, uint64_t amount, clock_t timeout)
 Setup blocking but dont block yet.
 
void wait_block_cancel (void)
 Cancel blocking.
 
uint64_t wait_block_commit (void)
 Block the currently running thread.
 

Function Documentation

◆ wait_remove_wait_entries()

◆ wait_timer_handler()