/commonlibrary/rust/ylong_runtime/ylong_runtime/src/sync/ |
H A D | atomic_waker.rs | 22 waker: RefCell<Option<Waker>>, 28 /// A new waker is registering. 31 /// The waker is being woken. 38 waker: RefCell::new(None), 42 pub(crate) fn register_by_ref(&self, waker: &Waker) { 48 self.waker.borrow_mut().replace(waker.clone()); 55 // atomic waker has been waked or registered, therefore waker must exist 56 let waker [all...] |
H A D | wake_list.rs | 54 /// Pushes a waker into the list and return its index in the list. 55 pub fn insert(&self, waker: Waker) -> usize { in insert() 58 list.wake_list.push_back(waker) in insert() 61 /// Removes the waker corresponding to the key. 109 while let Some(waker) = self.wake_list.pop_front() { in notify() 110 waker.wake(); in notify()
|
H A D | oneshot.rs | 177 self.channel.waker.wake(); in send() 218 self.channel.waker.wake(); in drop() 395 self.channel.waker.register_by_ref(cx.waker()); in poll() 417 /// The waker to notify the sender task or the receiver task. 418 waker: AtomicWaker, 426 waker: AtomicWaker::new(), in new() 450 self.waker.take_waker(); in drop()
|
/commonlibrary/rust/ylong_runtime/ylong_runtime/src/task/ |
H A D | task_handle.rs | 24 use crate::task::waker::WakerRefHeader; 110 "set waker failed: the join handle has been dropped" in set_waker_inner() 114 "set waker failed: the task already has a waker set" in set_waker_inner() 118 let waker = self.inner().waker.get(); in set_waker_inner() 119 *waker = Some(des_waker); in set_waker_inner() 124 let waker = self.inner().waker.get(); in set_waker_inner() 125 *waker in set_waker_inner() [all...] |
H A D | join_set.rs | 66 waker: Option<Waker>, 75 waker: None, in default() 130 // Wake the JoinSet if an waker is set in wake_by_ref() 131 if let Some(waker) = list.waker.take() { in wake_by_ref() 133 waker.wake(); in wake_by_ref() 183 let waker = entry_into_waker(&entry); in spawn_inner() 185 (*entry.handle.get()).set_waker(&waker); in spawn_inner() 292 // set the joinset's waker if it's not set 293 let is_same_waker = match list.waker [all...] |
H A D | raw.rs | 44 /// Task waker setting method 45 pub(crate) set_waker: unsafe fn(NonNull<Header>, cur_state: usize, waker: *const ()) -> bool, 138 pub(crate) unsafe fn set_waker(self, cur_state: usize, waker: *const ()) -> bool { 140 (vir_table.set_waker)(self.ptr, cur_state, waker) 187 pub(crate) waker: UnsafeCell<Option<Waker>>, 202 waker: UnsafeCell::new(None), in new() 269 let waker = self.waker.get(); 270 match unsafe { &*waker } { 271 Some(waker) [all...] |
H A D | join_handle.rs | 82 pub(crate) fn set_waker(&mut self, waker: &Waker) { 87 .set_waker(cur, (waker as *const Waker).cast::<()>()) 89 // Task already finished, wake the waker immediately 90 waker.wake_by_ref(); 118 let is_finished = self.raw.set_waker(cur, cx.waker() as *const _ as *mut ()); 119 // Setting the waker may happen concurrently with task finishing.
|
H A D | yield_now.rs | 50 // Under worker context, we push the waker into the yielded list owned by the in poll() 51 // worker to avoid waking the waker immediately. This is because in poll() 52 // waking the waker in a worker context will put the task in the in poll() 56 yielded.push(cx.waker().clone()); in poll() 58 cx.waker().wake_by_ref(); in poll() 70 cx.waker().wake_by_ref(); in poll()
|
H A D | waker.rs | 70 waker: ManuallyDrop<Waker>, 79 let waker = unsafe { ManuallyDrop::new(Waker::from_raw(raw_waker::<T>(header))) }; 82 waker, 92 &self.waker in deref()
|
/commonlibrary/rust/ylong_runtime/ylong_runtime/src/ffrt/ |
H A D | ffrt_timer.rs | 23 pub(crate) fn timer_register(waker: *mut Waker, dur: u64) -> Self { 26 let waker = data as *mut Waker; in timer_wake_hook() 27 (*waker).wake_by_ref(); in timer_wake_hook() 31 let data = waker as *mut c_void;
|
/commonlibrary/rust/ylong_runtime/ylong_runtime/src/time/ |
H A D | sleep.rs | 86 // the waker to wakeup the timer task 87 waker: Option<*mut Waker>, 103 waker: None, in new_timeout() 113 if let Some(waker) = self.inner.waker.take() { 115 drop(Box::from_raw(waker)); 125 if let Some(waker) = self.inner.waker.take() { in cancel() 127 drop(Box::from_raw(waker)); in cancel() 145 let waker [all...] |
H A D | driver.rs | 79 for waker in waker_list.iter_mut() { 80 waker 82 .expect("waker taken from the clock is none") 121 for waker in waker_list[0..waker_idx].iter_mut() { 122 waker 124 .expect("waker taken from the clock is none")
|
H A D | wheel.rs | 49 // Corresponding waker, 51 waker: Option<Waker>, 65 waker: None, 98 // Returns the corresponding waker. 100 self.waker.take() 103 // Sets the corresponding waker. 104 pub(crate) fn set_waker(&mut self, waker: Waker) { 105 self.waker = Some(waker);
|
/commonlibrary/rust/ylong_runtime/ylong_runtime/src/executor/ |
H A D | block_on.rs | 65 pub(crate) fn waker(&self) -> Waker { 99 // create a waker based on the current thread 100 let waker = parker.waker(); 101 let mut cx = Context::from_waker(&waker);
|
H A D | current_thread.rs | 203 fn waker(parker: Arc<Parker>) -> Waker { in waker() functions 279 let waker = waker(parker.clone()); 280 let mut cx = Context::from_waker(&waker);
|
H A D | worker.rs | 47 for waker in yielded.drain(..) { 48 waker.wake();
|
H A D | driver_handle.rs | 49 self.io.waker.wake().unwrap_or_else(|e| panic!("ylong_io wake failed, error: {e}"));
|
/commonlibrary/rust/ylong_runtime/ylong_io/src/ |
H A D | lib.rs | 43 mod waker; modules 44 pub use waker::Waker;
|
H A D | waker.rs | 38 /// UT cases for debug info of waker 49 let waker = Waker::new(&poll, Token::from_usize(0)).unwrap(); in ut_waker_debug_info() 50 let fmt = format!("{:?}", waker); in ut_waker_debug_info()
|
/commonlibrary/rust/ylong_runtime/ylong_io/src/sys/unix/ |
H A D | mod.rs | 53 mod waker; modules 55 pub(crate) use waker::WakerInner;
|
/commonlibrary/rust/ylong_runtime/ylong_io/src/sys/windows/ |
H A D | mod.rs | 45 mod waker; modules 46 pub(crate) use waker::WakerInner;
|
/commonlibrary/rust/ylong_runtime/ylong_runtime/src/net/ |
H A D | schedule_io.rs | 63 waker: Option<Waker>, 91 waker: None, in default() 140 // Put the waker associated with the context into the waiters 142 Interest::WRITABLE => waiters.writer = Some(cx.waker().clone()), 143 Interest::READABLE => waiters.reader = Some(cx.waker().clone()), 257 if let Some(waker) = waiters.reader.take() { in wake0() 258 wakers.push(waker); in wake0() 263 if let Some(waker) = waiters.writer.take() { in wake0() 264 wakers.push(waker); in wake0() 270 if let Some(waker) in wake0() [all...] |
H A D | driver.rs | 79 pub(crate) waker: ylong_io::Waker, 102 fn new(inner: Arc<Inner>, waker: ylong_io::Waker) -> Self { in new() 103 IoHandle { inner, waker } in new() 199 let waker = ylong_io::Waker::new(&poll, WAKE_TOKEN) 200 .unwrap_or_else(|e| panic!("ylong_io waker construction failed, error: {e}")); 227 (IoHandle::new(inner, waker), driver)
|
/commonlibrary/rust/ylong_runtime/ylong_ffrt/src/ |
H A D | sys_event.rs | 48 waker: *mut c_void, in ffrt_timer_start()
|
/commonlibrary/rust/ylong_http/ylong_http_client/src/util/h2/io/ |
H A D | split.rs | 129 cx.waker().wake_by_ref(); in get_lock()
|