(&mut self, res: ResourceCollection)
| 111 | } |
| 112 | |
| 113 | async fn start_loop(&mut self, res: ResourceCollection) { |
| 114 | self.initialize(res).await; |
| 115 | let mut empty_n = 0; |
| 116 | loop { |
| 117 | self.exec().await; |
| 118 | if !self.inputs.is_empty() { |
| 119 | let mut min_empty_n = usize::MAX; |
| 120 | for ports in self.inputs.values() { |
| 121 | for port in ports.storage.values() { |
| 122 | min_empty_n = std::cmp::min(min_empty_n, port.empty_n()); |
| 123 | } |
| 124 | } |
| 125 | |
| 126 | for _ in empty_n..min_empty_n { |
| 127 | for ports in self.outputs.values() { |
| 128 | for port in ports.storage.values() { |
| 129 | port.send_any(DummyEnvelope {}.seal()).await.ok(); |
| 130 | } |
| 131 | } |
| 132 | } |
| 133 | |
| 134 | empty_n = min_empty_n; |
| 135 | } |
| 136 | if self.is_allinp_closed() { |
| 137 | break; |
| 138 | } |
| 139 | } |
| 140 | self.close(); |
| 141 | } |
| 142 | } |
| 143 | |
| 144 | impl Node for PyNode { |
no test coverage detected