summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorManos Pitsidianakis <el13635@mail.ntua.gr>2018-08-06 13:33:10 +0300
committerManos Pitsidianakis <el13635@mail.ntua.gr>2019-06-10 19:40:26 +0300
commit3f35b69ff11b22c9ffc5a73e75d312e8c5b2b680 (patch)
tree81e6e7c516c104de771410926a185ac5c1e1d994 /src
parentf2a646158dd1284f048c426caa344af340a61624 (diff)
Poll all parse workers on startup
Diffstat (limited to 'src')
-rw-r--r--src/bin.rs24
1 files changed, 21 insertions, 3 deletions
diff --git a/src/bin.rs b/src/bin.rs
index 53a411cf..fdd5f4c1 100644
--- a/src/bin.rs
+++ b/src/bin.rs
@@ -59,7 +59,7 @@ fn make_input_thread(
sx.send(ThreadEvent::Input(k));
},
|| {
- sx.send(ThreadEvent::UIEventType(UIEventType::ChangeMode(
+ sx.send(ThreadEvent::UIEvent(UIEventType::ChangeMode(
UIMode::Fork,
)));
},
@@ -189,11 +189,29 @@ fn main() {
state.redraw();
/* Don't handle this yet. */
},
- ThreadEvent::UIEventType(UIEventType::ChangeMode(f)) => {
+ ThreadEvent::UIEvent(UIEventType::ChangeMode(f)) => {
state.mode = f;
break 'inner; // `goto` 'reap loop, and wait on child.
}
- ThreadEvent::UIEventType(e) => {
+ ThreadEvent::UIEvent(UIEventType::StartupCheck) => {
+ let mut flag = false;
+ for account in &mut state.context.accounts {
+ let len = account.len();
+ for i in 0..len {
+ match account.status(i) {
+ Ok(()) => { },
+ Err(_) => {
+ flag |= true;
+ }
+ }
+ }
+ }
+ if !flag {
+ state.finish_startup();
+ }
+
+ }
+ ThreadEvent::UIEvent(e) => {
state.rcv_event(UIEvent { id: 0, event_type: e});
state.render();
},