}
pub(super) fn entry() {
- let mut guard = task_queue::lock();
- let task = guard.pop().expect("Thread started but no tasks pending");
- drop(guard); // make sure to not hold the task queue lock longer than necessary
+ let mut pending_tasks = task_queue::lock();
+ let task = rtunwrap!(Some, pending_tasks.pop());
+ drop(pending_tasks); // make sure to not hold the task queue lock longer than necessary
task.run()
}
pub fn yield_now() {
- assert_eq!(
- usercalls::wait(0, usercalls::raw::WAIT_NO).unwrap_err().kind(),
- io::ErrorKind::WouldBlock
- );
+ let wait_error = rtunwrap!(Err, usercalls::wait(0, usercalls::raw::WAIT_NO));
+ rtassert!(wait_error.kind() == io::ErrorKind::WouldBlock);
}
pub fn set_name(_name: &CStr) {
}
pub fn sleep(_dur: Duration) {
- panic!("can't sleep"); // FIXME
+ rtabort!("can't sleep"); // FIXME
}
pub fn join(self) {