/DragonOS-0.1.9/docs/kernel/sched/ |
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-0.1.9/kernel/src/libs/ |
D | wait_queue.rs | 187 pub fn wakeup(&self, state: Option<ProcessState>) -> bool { in wakeup() method 209 let res = ProcessManager::wakeup(&to_wakeup).is_ok(); in wakeup() 236 ProcessManager::wakeup(&to_wakeup).unwrap_or_else(|e| { in wakeup_all() 341 if ProcessManager::wakeup(pcb).is_ok() { in wakeup_any() 360 pub fn wakeup(&self, events: u64) -> usize { in wakeup() method 366 if ProcessManager::wakeup(pcb).is_ok() { in wakeup()
|
D | semaphore.rs | 52 if !self.wait_queue.wakeup(None) { in up()
|
D | mutex.rs | 130 ProcessManager::wakeup(&to_wakeup).ok(); in unlock()
|
/DragonOS-0.1.9/docs/kernel/process_management/ |
D | kthread.md | 11   当内核线程被创建后,默认处于睡眠状态,要使用`ProcessManager::wakeup`函数将其唤醒。
|
/DragonOS-0.1.9/kernel/src/ipc/ |
D | pipe.rs | 178 .wakeup(Some(ProcessState::Blocked(true))); in read_at() 227 .wakeup(Some(ProcessState::Blocked(true))); in read_at() 233 .wakeup(Some(ProcessState::Blocked(true))); in read_at() 341 .wakeup(Some(ProcessState::Blocked(true))); in write_at() 379 .wakeup(Some(ProcessState::Blocked(true))); in write_at() 385 .wakeup(Some(ProcessState::Blocked(true))); in write_at()
|
D | signal.rs | 299 ProcessManager::wakeup(&pcb).unwrap_or_else(|e| { in signal_wake_up() 326 let _r = ProcessManager::wakeup(&pcb).map(|_| { in signal_wake_up()
|
/DragonOS-0.1.9/kernel/src/sched/ |
D | completion.rs | 53 inner.wait_queue.wakeup(None); in do_wait_for_common() 96 inner.wait_queue.wakeup(None); in complete()
|
/DragonOS-0.1.9/kernel/src/process/ |
D | kthread.rs | 310 ProcessManager::wakeup(&pcb).expect("Failed to wakeup kthread daemon"); in init_stage2() 336 ProcessManager::wakeup(unsafe { KTHREAD_DAEMON_PCB.as_ref().unwrap() }) in create() 357 ProcessManager::wakeup(&pcb) in create_and_run() 391 ProcessManager::wakeup(pcb).ok(); in stop()
|
D | syscall.rs | 215 ProcessManager::wakeup(&pcb).unwrap_or_else(|e| { in clone()
|
D | fork.rs | 188 ProcessManager::wakeup(&pcb).unwrap_or_else(|e| { in fork()
|
D | mod.rs | 203 pub fn wakeup(pcb: &Arc<ProcessControlBlock>) -> Result<(), SystemError> { in wakeup() method 344 pcb.wait_queue.wakeup(Some(ProcessState::Blocked(true))); in exit()
|
/DragonOS-0.1.9/kernel/src/exception/ |
D | sysfs.rs | 243 let wakeup = irq_desc.irq_data().is_wakeup_set(); in show() localVariable 244 return sysfs_emit_str(buf, &format!("{}\n", wakeup)); in show()
|
D | handle.rs | 190 ProcessManager::wakeup(&thread).ok(); in do_irq_wake_thread()
|
D | manage.rs | 585 ProcessManager::wakeup(&action_guard.thread().unwrap()).ok(); in wake_up_and_wait_for_irq_thread_ready()
|
/DragonOS-0.1.9/kernel/src/time/ |
D | timer.rs | 54 ProcessManager::wakeup(&self.pcb).ok(); in run()
|
/DragonOS-0.1.9/kernel/src/driver/tty/ |
D | tty_core.rs | 141 .wakeup(EPollEventType::EPOLLOUT.bits() as u64); in tty_wakeup()
|
/DragonOS-0.1.9/docs/community/ChangeLog/V0.1.x/ |
D | V0.1.9.md | 91 - bugfix: 解决waitqueue sleep的时候,由于preempt count不为0,导致sched失败,从而导致该waitqueue下一次wakeup时,会把pcb多次加入调度队列的… 1245 1.解决waitqueue sleep的时候,由于preempt count不为0,导致sched失败,从而导致该waitqueue下一次wakeup时,会把pcb多次加入调度队列的bug 1905 * 修正为在 wakeup 中设置 running ,以保留 set_state 的私有性 1915 * 修复wakeup的问题
|
/DragonOS-0.1.9/kernel/src/libs/futex/ |
D | futex.rs | 106 ProcessManager::wakeup(&futex_q.pcb.upgrade().unwrap())?; in wake_up()
|
/DragonOS-0.1.9/kernel/src/net/event_poll/ |
D | mod.rs | 707 self.epoll_wq.wakeup(None); in ep_wake_one()
|