@@ -18,6 +18,7 @@ pub(crate) enum InputMode {
1818}
1919#[ derive( Eq , PartialEq , Copy , Clone ) ]
2020pub ( crate ) enum InputEvent {
21+ MaxListDisplay ,
2122 NumaNode ,
2223}
2324
@@ -80,6 +81,17 @@ pub fn handle_input(
8081 stat. memory_graph_mode = stat. memory_graph_mode . next ( ) ;
8182 should_update. store ( true , Ordering :: Relaxed ) ;
8283 }
84+ char !( 'n' ) => {
85+ let mut stat = tui_stat. write ( ) . unwrap ( ) ;
86+ stat. input_label = format ! (
87+ "Maximum tasks = {}, change to (0 is unlimited)" ,
88+ stat. max_list_display
89+ ) ;
90+ stat. input_value . clear ( ) ;
91+ stat. input_mode = InputMode :: Input ( InputEvent :: MaxListDisplay ) ;
92+
93+ should_update. store ( true , Ordering :: Relaxed ) ;
94+ }
8395 char !( 'R' ) => {
8496 {
8597 let mut stat = tui_stat. write ( ) . unwrap ( ) ;
@@ -147,6 +159,17 @@ pub fn handle_input(
147159 stat. cpu_column = stat. cpu_column % 8 + 1 ;
148160 should_update. store ( true , Ordering :: Relaxed ) ;
149161 }
162+ char !( '#' ) => {
163+ let mut stat = tui_stat. write ( ) . unwrap ( ) ;
164+ stat. input_label = format ! (
165+ "Maximum tasks = {}, change to (0 is unlimited)" ,
166+ stat. max_list_display
167+ ) ;
168+ stat. input_value . clear ( ) ;
169+ stat. input_mode = InputMode :: Input ( InputEvent :: MaxListDisplay ) ;
170+
171+ should_update. store ( true , Ordering :: Relaxed ) ;
172+ }
150173 char !( '<' ) => {
151174 {
152175 let mut stat = tui_stat. write ( ) . unwrap ( ) ;
@@ -255,6 +278,21 @@ fn handle_input_value(
255278 should_update : & AtomicBool ,
256279) {
257280 match input_event {
281+ InputEvent :: MaxListDisplay => {
282+ let input_value = { tui_stat. read ( ) . unwrap ( ) . input_value . parse :: < usize > ( ) } ;
283+ if input_value. is_err ( ) {
284+ let mut stat = tui_stat. write ( ) . unwrap ( ) ;
285+ stat. reset_input ( ) ;
286+ stat. input_error = Some ( " invalid number " . into ( ) ) ;
287+ should_update. store ( true , Ordering :: Relaxed ) ;
288+ return ;
289+ }
290+ let input_value = input_value. unwrap ( ) ;
291+ let mut stat = tui_stat. write ( ) . unwrap ( ) ;
292+ stat. max_list_display = input_value;
293+ stat. reset_input ( ) ;
294+ should_update. store ( true , Ordering :: Relaxed ) ;
295+ }
258296 InputEvent :: NumaNode => {
259297 let input_value = { tui_stat. read ( ) . unwrap ( ) . input_value . parse :: < usize > ( ) } ;
260298 let numa_nodes = get_numa_nodes ( ) ;
0 commit comments