@@ -6,7 +6,6 @@ use crate::eventfd;
6
6
use std:: os:: unix:: io:: { AsRawFd , RawFd } ;
7
7
use std:: io;
8
8
use mlua:: Lua ;
9
- use std:: sync:: { Arc , atomic} ;
10
9
11
10
pub type Task = Box < dyn FnOnce ( & Lua ) -> Result < ( ) , ChannelError > + Send > ;
12
11
type TaskSender = async_channel:: Sender < Task > ;
@@ -27,19 +26,17 @@ pub enum ChannelError {
27
26
pub struct Dispatcher {
28
27
pub ( crate ) task_tx : TaskSender ,
29
28
pub ( crate ) eventfd : eventfd:: EventFd ,
30
- pub ( crate ) waiters : Arc < atomic:: AtomicUsize > ,
31
29
}
32
30
33
31
impl Dispatcher {
34
- pub fn new ( task_tx : TaskSender , eventfd : eventfd:: EventFd , waiters : Arc < atomic :: AtomicUsize > ) -> Self {
35
- Self { task_tx, eventfd, waiters }
32
+ pub fn new ( task_tx : TaskSender , eventfd : eventfd:: EventFd ) -> Self {
33
+ Self { task_tx, eventfd }
36
34
}
37
35
38
36
pub fn try_clone ( & self ) -> std:: io:: Result < Self > {
39
37
Ok ( Self {
40
38
task_tx : self . task_tx . clone ( ) ,
41
39
eventfd : self . eventfd . try_clone ( ) ?,
42
- waiters : self . waiters . clone ( ) ,
43
40
} )
44
41
}
45
42
@@ -86,12 +83,11 @@ impl Dispatcher {
86
83
pub struct Executor {
87
84
task_rx : TaskReceiver ,
88
85
eventfd : eventfd:: EventFd ,
89
- waiters : Arc < atomic:: AtomicUsize > ,
90
86
}
91
87
92
88
impl Executor {
93
- pub fn new ( task_rx : TaskReceiver , eventfd : eventfd:: EventFd , waiters : Arc < atomic :: AtomicUsize > ) -> Self {
94
- Self { task_rx, eventfd, waiters }
89
+ pub fn new ( task_rx : TaskReceiver , eventfd : eventfd:: EventFd ) -> Self {
90
+ Self { task_rx, eventfd }
95
91
}
96
92
97
93
pub fn exec ( & self , lua : & Lua , coio_timeout : f64 ) -> Result < ( ) , ChannelError > {
@@ -103,7 +99,6 @@ impl Executor {
103
99
} ;
104
100
105
101
let _ = self . eventfd . coio_read ( coio_timeout) ;
106
- self . waiters . fetch_sub ( 1 , atomic:: Ordering :: Relaxed ) ;
107
102
}
108
103
}
109
104
@@ -132,17 +127,8 @@ impl Executor {
132
127
Ok ( Self {
133
128
task_rx : self . task_rx . clone ( ) ,
134
129
eventfd : self . eventfd . try_clone ( ) ?,
135
- waiters : self . waiters . clone ( ) ,
136
130
} )
137
131
}
138
-
139
- pub fn len ( & self ) -> usize {
140
- self . task_rx . len ( )
141
- }
142
-
143
- pub fn waiters ( & self ) -> usize {
144
- self . waiters . load ( atomic:: Ordering :: Relaxed )
145
- }
146
132
}
147
133
148
134
impl AsRawFd for Executor {
@@ -154,10 +140,6 @@ impl AsRawFd for Executor {
154
140
pub fn channel ( buffer : usize ) -> io:: Result < ( Dispatcher , Executor ) > {
155
141
let ( task_tx, task_rx) = async_channel:: bounded ( buffer) ;
156
142
let efd = eventfd:: EventFd :: new ( 0 , false ) ?;
157
- let waiters = Arc :: new ( atomic:: AtomicUsize :: new ( 0 ) ) ;
158
143
159
- Ok ( (
160
- Dispatcher :: new ( task_tx, efd. try_clone ( ) ?, waiters. clone ( ) ) ,
161
- Executor :: new ( task_rx, efd, waiters) ,
162
- ) )
144
+ Ok ( ( Dispatcher :: new ( task_tx, efd. try_clone ( ) ?) , Executor :: new ( task_rx, efd) ) )
163
145
}
0 commit comments