sched.h

Defines

EMB_PRIORITY_COUNT
EMB_PRIORITY_IDLE
EMB_PRIORITY_MIN
EMB_PRIORITY_MAX

Functions

void emb_sched_lock(void)

emb_sched_lock() - Prevent thread preemption until the matching unlock.

Interrupts still run; a wake they cause is applied when the lock depth returns to zero (KRN-IRQ-022). Blocking with a nonzero timeout while locked is misuse (SPEC-001 §5.3).

Context: thread Blocking: no Timing: O(1) Ownership: none Configuration: Requirements: KRN-IRQ-022 Since: 0.2 Stability: yes

void emb_sched_unlock(void)

emb_sched_unlock() - Undo one emb_sched_lock(); at depth zero, reschedule if owed.

Context: thread Blocking: no Timing: O(1), plus one reschedule at depth 0 Ownership: none Configuration: Requirements: KRN-IRQ-022 Since: 0.2 Stability: yes

unsigned emb_sched_lock_depth(void)

emb_sched_lock_depth() - Current scheduler lock nesting depth.

Context: thread isr Blocking: no Timing: O(1) Ownership: none Configuration: Requirements: KRN-IRQ-022 Since: 0.2 Stability: yes