@@ -74,8 +74,13 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
74
74
}
75
75
76
76
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
+
77
82
loop {
78
- if let Ok ( true ) = event:: poll ( Duration :: from_millis ( 10 ) ) {
83
+ if let Ok ( true ) = event:: poll ( Duration :: from_millis ( 20 ) ) {
79
84
// If event available, break this loop
80
85
if let Ok ( e) = event:: read ( ) {
81
86
match e {
@@ -91,23 +96,21 @@ pub fn uumain(args: impl uucore::Args) -> UResult<()> {
91
96
uucore:: error:: set_exit_code ( 0 ) ;
92
97
break ;
93
98
}
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 ) ,
99
100
}
100
101
}
101
102
}
102
103
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
+ }
106
109
107
110
if settings. once {
108
111
break ;
109
112
} else {
110
- sleep ( Duration :: from_millis ( 10 ) ) ;
113
+ sleep ( Duration :: from_millis ( 20 ) ) ;
111
114
}
112
115
}
113
116
0 commit comments