diff --git a/src/runtime2/messages.rs b/src/runtime2/messages.rs index 1d29934465b34add25097b85e6a760806cbf87da..c2cde8548f2bd93cf5fa8058a1c975851d2ba318 100644 --- a/src/runtime2/messages.rs +++ b/src/runtime2/messages.rs @@ -85,6 +85,10 @@ impl ConnectorInbox { None => return None, } } + + pub fn clear(&mut self) { + self.messages.clear(); + } } /// A connector's outbox. A temporary storage for messages that are sent by @@ -92,14 +96,12 @@ impl ConnectorInbox { /// actually transmit the messages. pub struct ConnectorOutbox { messages: Vec, - sent_counter: usize, } impl ConnectorOutbox { pub fn new() -> Self { Self{ messages: Vec::new(), - sent_counter: 0, } } @@ -120,18 +122,11 @@ impl ConnectorOutbox { self.messages.push(message); } - pub fn take_next_message_to_send(&mut self) -> Option<&BufferedMessage> { - if self.sent_counter == self.messages.len() { - return None; - } - - let cur_index = self.sent_counter; - self.sent_counter += 1; - return Some(&self.messages[cur_index]); + pub fn take_next_message_to_send(&mut self) -> Option { + self.messages.pop() } pub fn clear(&mut self) { self.messages.clear(); - self.sent_counter = 0; } } \ No newline at end of file