diff --git a/src/runtime2/scheduler.rs b/src/runtime2/scheduler.rs index 911674012bf95991b546a585dc61ef9570afbc16..9cb007655638c88dc662e2d132a2a396909659d7 100644 --- a/src/runtime2/scheduler.rs +++ b/src/runtime2/scheduler.rs @@ -71,7 +71,7 @@ impl Scheduler { self.debug_conn(connector_id, "Running ..."); let scheduler_ctx = SchedulerCtx{ runtime: &*self.runtime }; let new_schedule = scheduled.connector.run(scheduler_ctx, &mut scheduled.ctx); - self.debug_conn(connector_id, "Finished running"); + self.debug_conn(connector_id, &format!("Finished running (new scheduling is {:?})", new_schedule)); // Handle all of the output from the current run: messages to // send and connectors to instantiate. @@ -263,7 +263,11 @@ impl Scheduler { let message = &scheduled.ctx.inbox_messages[message_idx]; if Self::get_message_target_port(message) == Some(port_id) { // Need to transfer this message + // TODO: Revise messages, this is becoming messy and error-prone let message = scheduled.ctx.inbox_messages.remove(message_idx); + if message_idx < scheduled.ctx.inbox_len_read { + scheduled.ctx.inbox_len_read -= 1; + } new_connector.ctx.inbox_messages.push(message); } else { message_idx += 1; @@ -365,11 +369,11 @@ impl Scheduler { // TODO: Remove, this is debugging stuff fn debug(&self, message: &str) { - println!("DEBUG [thrd:{:02} conn: ]: {}", self.scheduler_id, message); + // println!("DEBUG [thrd:{:02} conn: ]: {}", self.scheduler_id, message); } fn debug_conn(&self, conn: ConnectorId, message: &str) { - println!("DEBUG [thrd:{:02} conn:{:02}]: {}", self.scheduler_id, conn.0, message); + // println!("DEBUG [thrd:{:02} conn:{:02}]: {}", self.scheduler_id, conn.0, message); } }