@@ -74,8 +74,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
7474 }
7575
7676 let mut terminal = ratatui:: init ( ) ;
77+ // Initial output
78+ terminal. draw ( |frame| {
79+ Tui :: new ( & slabinfo. read ( ) ) . render ( frame. area ( ) , frame. buffer_mut ( ) ) ;
80+ } ) ?;
81+
7782 loop {
78- if let Ok ( true ) = event:: poll ( Duration :: from_millis ( 10 ) ) {
83+ if let Ok ( true ) = event:: poll ( Duration :: from_millis ( 20 ) ) {
7984 // If event available, break this loop
8085 if let Ok ( e) = event:: read ( ) {
8186 match e {
@@ -91,23 +96,21 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
9196 uucore:: error:: set_exit_code ( 0 ) ;
9297 break ;
9398 }
94- event:: Event :: Key ( KeyEvent {
95- code : KeyCode :: Char ( ' ' ) ,
96- ..
97- } ) => should_update. store ( true , Ordering :: Relaxed ) ,
98- _ => { }
99+ _ => should_update. store ( true , Ordering :: Relaxed ) ,
99100 }
100101 }
101102 }
102103
103- terminal. draw ( |frame| {
104- Tui :: new ( & slabinfo. read ( ) ) . render ( frame. area ( ) , frame. buffer_mut ( ) ) ;
105- } ) ?;
104+ if should_update. load ( Ordering :: Relaxed ) {
105+ terminal. draw ( |frame| {
106+ Tui :: new ( & slabinfo. read ( ) ) . render ( frame. area ( ) , frame. buffer_mut ( ) ) ;
107+ } ) ?;
108+ }
106109
107110 if settings. once {
108111 break ;
109112 } else {
110- sleep ( Duration :: from_millis ( 10 ) ) ;
113+ sleep ( Duration :: from_millis ( 20 ) ) ;
111114 }
112115 }
113116
0 commit comments