Files
@ 21280085d6b4
Branch filter:
Location: CSY/reowolf/src/runtime2/component/mod.rs - annotation
21280085d6b4
841 B
application/rls-services+xml
Merge branch 'fix-erroneous-comp-handle-debug-assert' into 'master'
fix: revert erroneous debug assert
See merge request nl-cwi-csy/reowolf!5
fix: revert erroneous debug assert
See merge request nl-cwi-csy/reowolf!5
9e771c9cf8d3 e7df1d2ae35f 9e771c9cf8d3 968e958c3286 9e771c9cf8d3 e7df1d2ae35f e7df1d2ae35f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f | mod component_pdl;
mod component_context;
mod control_layer;
mod consensus;
pub(crate) use component_pdl::{CompPDL, CompScheduling};
pub(crate) use component_context::CompCtx;
pub(crate) use control_layer::{ControlId};
use super::scheduler::*;
use super::runtime::*;
/// If the component is sleeping, then that flag will be atomically set to
/// false. If we're the ones that made that happen then we add it to the work
/// queue.
pub(crate) fn wake_up_if_sleeping(sched_ctx: &SchedulerCtx, comp_id: CompId, handle: &CompHandle) {
use std::sync::atomic::Ordering;
let should_wake_up = handle.sleeping
.compare_exchange(true, false, Ordering::AcqRel, Ordering::Acquire)
.is_ok();
if should_wake_up {
let comp_key = unsafe{ comp_id.upgrade() };
sched_ctx.runtime.enqueue_work(comp_key);
}
}
|