MCPcopy Create free account
hub / github.com/MegEngine/MegFlow / start_loop

Method start_loop

flow-rs/src/loader/python/node.rs:113–141  ·  view source on GitHub ↗
(&mut self, res: ResourceCollection)

Source from the content-addressed store, hash-verified

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
144impl Node for PyNode {

Callers 1

startMethod · 0.80

Calls 8

send_anyMethod · 0.80
sealMethod · 0.80
initializeMethod · 0.45
execMethod · 0.45
is_emptyMethod · 0.45
empty_nMethod · 0.45
is_allinp_closedMethod · 0.45
closeMethod · 0.45

Tested by

no test coverage detected