Files
@ 1bc57ab68e0e
Branch filter:
Location: CSY/reowolf/src/runtime2/component/mod.rs - annotation
1bc57ab68e0e
929 B
application/rls-services+xml
Merge branch 'feat-builtin-ip' into 'master'
feat: Builtin internet component
See merge request nl-cwi-csy/reowolf!6
feat: Builtin internet component
See merge request nl-cwi-csy/reowolf!6
9e771c9cf8d3 e7df1d2ae35f 9e771c9cf8d3 968e958c3286 113e4349a706 113e4349a706 113e4349a706 9e771c9cf8d3 113e4349a706 113e4349a706 e7df1d2ae35f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 113e4349a706 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 0de39654770f 113e4349a706 0de39654770f 0de39654770f | mod component_pdl;
mod component_context;
mod control_layer;
mod consensus;
mod component;
mod component_random;
mod component_internet;
pub(crate) use component::{Component, CompScheduling};
pub(crate) use component_pdl::{CompPDL};
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(runtime: &RuntimeInner, 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() };
runtime.enqueue_work(comp_key);
}
}
|