dnetview: fixed error which caused scroll to crash when nodes are offline

This commit is contained in:
lunar-mining
2022-08-09 06:49:39 +02:00
parent 0de61d8d71
commit de0681767d

View File

@@ -3,7 +3,7 @@ use std::{collections::hash_map::Entry, fs::File, io, io::Read, path::PathBuf};
use easy_parallel::Parallel;
use fxhash::{FxHashMap, FxHashSet};
use log::{error, info};
use log::{error, info, trace};
use serde_json::{json, Value};
use simplelog::*;
use smol::Executor;
@@ -40,8 +40,6 @@ use crate::{
view::{IdMenu, MsgList, View},
};
//use log::debug;
struct DnetView {
name: String,
rpc_client: RpcClient,
@@ -107,6 +105,8 @@ async fn main() -> DnetViewResult<()> {
let nthreads = num_cpus::get();
let (signal, shutdown) = async_channel::unbounded::<()>();
let (s, r) = async_channel::unbounded::<()>();
let ex = Arc::new(Executor::new());
let ex2 = ex.clone();
@@ -222,6 +222,7 @@ async fn parse_offline(node_name: String, model: Arc<Model>) -> DnetViewResult<(
update_node(model.clone(), node.clone(), node_id.clone()).await;
update_selectable_and_ids(model.clone(), sessions, node.clone()).await?;
update_new_id(model.clone()).await;
Ok(())
}
@@ -317,6 +318,7 @@ async fn update_selectable_and_ids(
if node.is_offline == true {
let node_obj = SelectableObject::Node(node.clone());
model.selectables.lock().await.insert(node.id.clone(), node_obj);
update_ids(model.clone(), node.id.clone()).await;
} else {
let node_obj = SelectableObject::Node(node.clone());
model.selectables.lock().await.insert(node.id.clone(), node_obj);
@@ -623,6 +625,8 @@ async fn render_view<B: Backend>(
model.selectables.lock().await.clone(),
);
trace!(target: "dnetview::render_view()", "ID LIST: {:?}", view.id_menu.ids);
let mut err: Option<DnetViewError> = None;
terminal.draw(|f| match view.render(f) {
@@ -662,5 +666,6 @@ async fn render_view<B: Backend>(
_ => (),
}
}
//async_util::sleep(1).await;
}
}