X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/blobdiff_plain/3b6a05fc894d0c1a3d431045ee5a53955ba093a0..270869139db617e29a35bb9ded41087bb702f9ac:/lunaix-os/includes/lunaix/ds/waitq.h diff --git a/lunaix-os/includes/lunaix/ds/waitq.h b/lunaix-os/includes/lunaix/ds/waitq.h index 219bf04..4469e1c 100644 --- a/lunaix-os/includes/lunaix/ds/waitq.h +++ b/lunaix-os/includes/lunaix/ds/waitq.h @@ -2,7 +2,6 @@ #define __LUNAIX_CODVAR_H #include -#include typedef struct waitq { @@ -21,18 +20,31 @@ waitq_empty(waitq_t* waitq) return llist_empty(&waitq->waiters); } +static inline void +waitq_cancel_wait(waitq_t* waitq) +{ + llist_delete(&waitq->waiters); +} + +void +prepare_to_wait(waitq_t* waitq); + +void +try_wait(); + +void +try_wait_check_stall(); + void pwait(waitq_t* queue); +void +pwait_check_stall(waitq_t* queue); + void pwake_one(waitq_t* queue); void pwake_all(waitq_t* queue); -#define wait_if(cond) \ - while ((cond)) { \ - sched_yieldk(); \ - } - #endif /* __LUNAIX_CODVAR_H */