File tree Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Expand file tree Collapse file tree 1 file changed +6
-1
lines changed Original file line number Diff line number Diff line change @@ -192,11 +192,16 @@ impl<F: Future + 'static> AsyncTaskExecutor<F> {
192
192
self . set_pending ( ) ;
193
193
}
194
194
195
+ #[ inline( always) ]
196
+ pub const fn waker ( & self , wake : fn ( ) ) -> Waker {
197
+ unsafe { Waker :: from_raw ( RawWaker :: new ( wake as * const ( ) , & WAKER_VTABLE ) ) }
198
+ }
199
+
195
200
/// Poll the future in the executor.
196
201
#[ inline( always) ]
197
202
pub fn poll ( & self , wake : fn ( ) ) {
198
203
if self . is_running ( ) && self . check_and_clear_pending ( ) {
199
- let waker = unsafe { Waker :: from_raw ( RawWaker :: new ( wake as * const ( ) , & WAKER_VTABLE ) ) } ;
204
+ let waker = self . waker ( wake) ;
200
205
let mut cx = Context :: from_waker ( & waker) ;
201
206
let future = unsafe { Pin :: new_unchecked ( & mut * ( self . task . get ( ) as * mut F ) ) } ;
202
207
You can’t perform that action at this time.
0 commit comments