/DragonOS/docs/kernel/sched/ |
H A D | rust_waiting.md | 37    当前进程会被挂起,直到有另一个进程调用了`wq.wakeup()`。 45 wq.wakeup(PROC_INTERRUPTIBLE); 48 wq.wakeup(PROC_UNINTERRUPTIBLE); 51 wq.wakeup((-1) as u64); 71   您可以使用`wakeup(state)`函数,唤醒等待队列中的第一个进程。如果这个进程的state与给定的state进行and操作之后,结果不为0,则唤醒它。
|
/DragonOS/kernel/src/libs/ |
H A D | wait_queue.rs | 219 pub fn wakeup(&self, state: Option<ProcessState>) -> bool { in wakeup() method 241 let res = ProcessManager::wakeup(&to_wakeup).is_ok(); in wakeup() 268 ProcessManager::wakeup(&to_wakeup).unwrap_or_else(|e| { in wakeup_all() 379 if ProcessManager::wakeup(pcb).is_ok() { in wakeup_any() 398 pub fn wakeup(&self, events: u64) -> usize { in wakeup() method 404 if ProcessManager::wakeup(pcb).is_ok() { in wakeup()
|
H A D | semaphore.rs | 53 if !self.wait_queue.wakeup(None) { in up()
|
H A D | mutex.rs | 130 ProcessManager::wakeup(&to_wakeup).ok(); in unlock()
|
/DragonOS/docs/kernel/process_management/ |
H A D | kthread.md | 11   当内核线程被创建后,默认处于睡眠状态,要使用`ProcessManager::wakeup`函数将其唤醒。
|
/DragonOS/kernel/src/sched/ |
H A D | completion.rs | 54 inner.wait_queue.wakeup(None); in do_wait_for_common() 97 inner.wait_queue.wakeup(None); in complete()
|
/DragonOS/kernel/src/ipc/ |
H A D | pipe.rs | 216 .wakeup(Some(ProcessState::Blocked(true))); in read_at() 261 .wakeup(Some(ProcessState::Blocked(true))); in read_at() 266 .wakeup(Some(ProcessState::Blocked(true))); in read_at() 372 .wakeup(Some(ProcessState::Blocked(true))); in write_at() 407 .wakeup(Some(ProcessState::Blocked(true))); in write_at() 412 .wakeup(Some(ProcessState::Blocked(true))); in write_at()
|
H A D | signal.rs | 321 ProcessManager::wakeup(&pcb).unwrap_or_else(|e| { in signal_wake_up() 347 let _r = ProcessManager::wakeup(&pcb).map(|_| { in signal_wake_up()
|
/DragonOS/kernel/src/driver/tty/ |
H A D | kthread.rs | 72 let _ = ProcessManager::wakeup(unsafe { TTY_REFRESH_THREAD.as_ref().unwrap() }); in send_to_tty_refresh_thread()
|
/DragonOS/kernel/src/process/ |
H A D | kthread.rs | 320 ProcessManager::wakeup(&pcb).expect("Failed to wakeup kthread daemon"); in init_stage2() 347 ProcessManager::wakeup(unsafe { KTHREAD_DAEMON_PCB.as_ref().unwrap() }) in create() 368 ProcessManager::wakeup(&pcb) in create_and_run() 402 ProcessManager::wakeup(pcb).ok(); in stop()
|
H A D | fork.rs | 197 ProcessManager::wakeup(&pcb).unwrap_or_else(|e| { in fork()
|
H A D | mod.rs | 227 pub fn wakeup(pcb: &Arc<ProcessControlBlock>) -> Result<(), SystemError> { in wakeup() method 392 pcb.wait_queue.wakeup(Some(ProcessState::Blocked(true))); in exit()
|
H A D | syscall.rs | 322 ProcessManager::wakeup(&pcb).unwrap_or_else(|e| { in clone()
|
/DragonOS/kernel/src/exception/ |
H A D | sysfs.rs | 244 let wakeup = irq_desc.irq_data().is_wakeup_set(); in show() localVariable 245 return sysfs_emit_str(buf, &format!("{}\n", wakeup)); in show()
|
H A D | handle.rs | 235 ProcessManager::wakeup(&thread).ok(); in do_irq_wake_thread()
|
H A D | manage.rs | 610 ProcessManager::wakeup(&action_guard.thread().unwrap()).ok(); in wake_up_and_wait_for_irq_thread_ready()
|
/DragonOS/kernel/src/smp/cpu/ |
H A D | mod.rs | 264 ProcessManager::wakeup(cpu_state.thread.as_ref().unwrap())?; in do_cpuhp_kick_ap()
|
/DragonOS/kernel/src/time/ |
H A D | timer.rs | 101 ProcessManager::wakeup(&self.pcb).ok(); in run()
|
H A D | clocksource.rs | 1026 ProcessManager::wakeup(&watchdog_kthread).ok(); in run_watchdog_kthread()
|
/DragonOS/docs/community/ChangeLog/V0.1.x/ |
H A D | V0.1.9.md | 92 - bugfix: 解决waitqueue sleep的时候,由于preempt count不为0,导致sched失败,从而导致该waitqueue下一次wakeup时,会把pcb多次加入调度队列的… 1246 1.解决waitqueue sleep的时候,由于preempt count不为0,导致sched失败,从而导致该waitqueue下一次wakeup时,会把pcb多次加入调度队列的bug 1906 * 修正为在 wakeup 中设置 running ,以保留 set_state 的私有性 1916 * 修复wakeup的问题
|
H A D | V0.1.10.md | 615 * 修改wakeup函数获取running queue时unwrap一个None值发生panic
|
/DragonOS/kernel/src/net/event_poll/ |
H A D | mod.rs | 713 self.epoll_wq.wakeup(None); in ep_wake_one()
|
/DragonOS/kernel/src/libs/futex/ |
H A D | futex.rs | 113 ProcessManager::wakeup(&futex_q.pcb.upgrade().unwrap())?; in wake_up()
|
/DragonOS/kernel/src/mm/ |
H A D | page.rs | 212 let _ = ProcessManager::wakeup(unsafe { PAGE_RECLAIMER_THREAD.as_ref().unwrap() }); in wakeup_claim_thread()
|