concurrent reading
This commit is contained in:
parent
3d9114dea9
commit
1f6679f57f
8 changed files with 104 additions and 84 deletions
|
|
@ -1,4 +1,4 @@
|
|||
use std::{collections::HashMap, iter, mem, rc::Rc};
|
||||
use std::{collections::HashMap, iter, mem, sync::Arc};
|
||||
|
||||
use crate::tui::{
|
||||
filter::Filter,
|
||||
|
|
@ -58,7 +58,7 @@ impl LogViewer {
|
|||
pub fn filtered_root_stream(&self) -> Box<dyn LogStream> {
|
||||
let mut curr = self.root_stream.clone();
|
||||
for filter in self.filters.get() {
|
||||
curr = Box::new(curr.filter(Rc::clone(filter)));
|
||||
curr = Box::new(curr.filter(Arc::clone(filter)));
|
||||
}
|
||||
|
||||
curr
|
||||
|
|
@ -78,12 +78,12 @@ impl LogViewer {
|
|||
|
||||
fn find_elem_in_stream(
|
||||
stream: &dyn LogStream,
|
||||
elem: &Rc<LogEntry>,
|
||||
elem: &Arc<LogEntry>,
|
||||
) -> Option<Box<dyn LogStream>> {
|
||||
let mut temp_stream = stream.clone();
|
||||
let mut max = 100usize;
|
||||
while let Some((curr, _)) = temp_stream.next() {
|
||||
if Rc::ptr_eq(&curr, elem) {
|
||||
if Arc::ptr_eq(&curr, elem) {
|
||||
return Some(temp_stream);
|
||||
}
|
||||
|
||||
|
|
@ -162,8 +162,8 @@ impl LogViewer {
|
|||
self.stack = new_stack;
|
||||
}
|
||||
|
||||
pub fn add_filter(&mut self, filter: Rc<Filter>) {
|
||||
self.filters.push(Rc::clone(&filter));
|
||||
pub fn add_filter(&mut self, filter: Arc<Filter>) {
|
||||
self.filters.push(Arc::clone(&filter));
|
||||
self.update_filters();
|
||||
}
|
||||
|
||||
|
|
@ -200,7 +200,7 @@ impl LogViewer {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn items(&mut self, max: usize) -> Option<(Vec<(Rc<LogEntry>, usize)>, usize)> {
|
||||
pub fn items(&mut self, max: usize) -> Option<(Vec<(Arc<LogEntry>, usize)>, usize)> {
|
||||
let mut temp_iter = self.curr.iter.clone();
|
||||
let mut res = Vec::new();
|
||||
for _ in 0..max {
|
||||
|
|
@ -241,7 +241,7 @@ impl LogViewer {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn selected(&self) -> Option<(Rc<LogEntry>, usize)> {
|
||||
pub fn selected(&self) -> Option<(Arc<LogEntry>, usize)> {
|
||||
self.curr.selected()
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue