Changeset - 0ec053ef96b5
[Not reviewed]
0 5 0
mh - 3 years ago 2022-02-02 17:25:18
contact@maxhenger.nl
WIP: Fix transfered port ID bug
5 files changed with 9 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/runtime2/component/component_context.rs
Show inline comments
 
@@ -137,7 +137,6 @@ impl CompCtx {
 
        let peer_index = self.get_peer_index_by_id(peer_id).unwrap();
 
        let peer = &mut self.peers[peer_index];
 
        peer.num_associated_ports -= 1;
 
        println!(" ****** DEBUG: Removed peer {:?} from {:?}, now at {}", peer.id, self_id, peer.num_associated_ports);
 
        if peer.num_associated_ports == 0 {
 
            let mut peer = self.peers.remove(peer_index);
 
            if let Some(key) = peer.handle.decrement_users() {
src/runtime2/component/component_pdl.rs
Show inline comments
 
@@ -679,7 +679,8 @@ impl CompPDL {
 
                    }
 
                }
 
            } else {
 
                // Peer is a different component
 
                // Peer is a different component. We'll deal with sending the
 
                // appropriate messages later
 
                let peer_handle = creator_ctx.get_peer_handle(created_port_info.peer_comp_id);
 
                let peer_info = creator_ctx.get_peer(peer_handle);
 
                created_ctx.add_peer(pair.created_handle, sched_ctx, peer_info.id, Some(&peer_info.handle));
 
@@ -739,6 +740,7 @@ impl CompPDL {
 
                let peer_port_handle = creator_ctx.get_port_handle(created_port_info.peer_port_id);
 
                let peer_port_info = creator_ctx.get_port_mut(peer_port_handle);
 
                peer_port_info.peer_comp_id = created_ctx.id;
 
                peer_port_info.peer_port_id = created_port_info.self_id;
 
                creator_ctx.add_peer(peer_port_handle, sched_ctx, created_ctx.id, None);
 
            }
 
        }
src/runtime2/runtime.rs
Show inline comments
 
@@ -113,7 +113,6 @@ impl CompHandle {
 
        let old_count = self.num_handles.fetch_sub(1, Ordering::AcqRel);
 
        let new_count = old_count - 1;
 
        dbg_code!(self.decremented = true);
 
        println!(" ****** DEBUG [handle]: Decremented count to {} for {:?}", new_count, self.id);
 
        if new_count == 0 {
 
            return Some(unsafe{ self.id.upgrade() });
 
        }
src/runtime2/scheduler.rs
Show inline comments
 
@@ -28,6 +28,11 @@ impl<'a> SchedulerCtx<'a> {
 
    pub(crate) fn log(&self, text: &str) {
 
        println!("[s:{:02}, c:{:03}] {}", self.id, self.comp, text);
 
    }
 

	
 
    // TODO: Obviously remove, but useful for testing
 
    pub(crate) fn log_special(&self, text: &str) {
 
        println!("[s:{:02}, c:{:03}] *** *** {}", self.id, self.comp, text);
 
    }
 
}
 

	
 
impl Scheduler {
 
@@ -105,7 +110,6 @@ impl Scheduler {
 

	
 
            let old_count = component.public.num_handles.fetch_sub(1, Ordering::AcqRel);
 
            let new_count = old_count - 1;
 
            println!(" ****** DEBUG [ sched]: Decremented count to {} for {:?}", new_count, component.ctx.id);
 
            if new_count == 0 {
 
                sched_ctx.runtime.destroy_component(comp_key);
 
                return;
src/runtime2/tests/mod.rs
Show inline comments
 
@@ -31,7 +31,7 @@ fn test_component_creation() {
 
}
 

	
 
#[test]
 
fn test_component_communication_b() {
 
fn test_component_communication() {
 
    let pd = ProtocolDescription::parse(b"
 
    primitive sender(out<u32> o, u32 outside_loops, u32 inside_loops) {
 
        u32 outside_index = 0;
0 comments (0 inline, 0 general)