Home
last modified time | relevance | path

Searched refs:wait_list (Results 1 – 12 of 12) sorted by relevance

/DragonOS-0.1.5/kernel/src/libs/
Dwait_queue.c15 list_init(&wait_queue->wait_list); in wait_queue_init()
29 list_append(&wait_queue_head->wait_list, &wait->wait_list); in wait_queue_sleep_on()
45 list_append(&wait_queue_head->wait_list, &wait->wait_list); in wait_queue_sleep_on_unlock()
60 list_append(&wait_queue_head->wait_list, &wait->wait_list); in wait_queue_sleep_on_interriptible()
73 if (list_empty(&wait_queue_head->wait_list)) in wait_queue_wakeup()
75 …_node_t *wait = container_of(list_next(&wait_queue_head->wait_list), wait_queue_node_t, wait_list); in wait_queue_wakeup()
80 list_del(&wait->wait_list); in wait_queue_wakeup()
Dwait_queue_head.c13 list_init(&wait_queue->wait_list); in wait_queue_head_init()
27 list_append(&q->wait_list, &wait->wait_list); in wait_queue_sleep_with_node()
42 list_append(&q->wait_list, &wait->wait_list); in wait_queue_sleep_with_node_unlock()
58 list_append(&q->wait_list, &wait->wait_list); in wait_queue_sleep_with_node_interriptible()
71 if (list_empty(&q->wait_list)) in wait_queue_wakeup_on_stack()
74 wait_queue_node_t *wait = container_of(list_next(&q->wait_list), wait_queue_node_t, wait_list); in wait_queue_wakeup_on_stack()
79 list_del_init(&wait->wait_list); in wait_queue_wakeup_on_stack()
Dsemaphore.c18 list_append(&sema->wait_queue.wait_list, &wait.wait_list); in semaphore_down()
28 if (list_empty(&sema->wait_queue.wait_list)) // 没有进程在等待资源 in semaphore_up()
35 …ue_node_t *wq = container_of(list_next(&sema->wait_queue.wait_list), wait_queue_node_t, wait_list); in semaphore_up()
36 list_del(&wq->wait_list); in semaphore_up()
Dwait_queue.rs21 wait_list: Default::default(), in default()
24 list_init(&mut x.wait_list); in default()
32 wait_list: LinkedList<&'static mut process_control_block>, field
46 guard.wait_list.push_back(current_pcb()); in sleep()
55 guard.wait_list.push_back(current_pcb()); in sleep_uninterruptible()
65 guard.wait_list.push_back(current_pcb()); in sleep_unlock_spinlock()
76 guard.wait_list.push_back(current_pcb()); in sleep_unlock_mutex()
87 guard.wait_list.push_back(current_pcb()); in sleep_uninterruptible_unlock_spinlock()
98 guard.wait_list.push_back(current_pcb()); in sleep_uninterruptible_unlock_mutex()
114 if guard.wait_list.is_empty() { in wakeup()
[all …]
Dmutex.rs23 wait_list: LinkedList<&'static mut process_control_block>, field
52 wait_list: LinkedList::<&'static mut process_control_block>::new(), in new()
68 inner.wait_list.push_back(current_pcb()); in lock()
120 if inner.wait_list.is_empty() { in unlock()
125 let to_wakeup: &mut process_control_block = inner.wait_list.pop_front().unwrap(); in unlock()
136 for p in inner.wait_list.iter() { in check_pid_in_wait_list()
Dmutex.c14 list_init(&lock->wait_list); in mutex_init()
51 list_append(&lock->wait_list, &waiter->list); in mutex_lock()
80 if (!list_empty(&lock->wait_list)) in mutex_unlock()
81 wt = container_of(list_next(&lock->wait_list), struct mutex_waiter_t, list); in mutex_unlock()
/DragonOS-0.1.5/kernel/src/ktest/
Dtest-mutex.c40 assert(list_empty(&mtx.wait_list)); in ktest_mutex_case1_pid1()
58 while (list_empty(&mtx.wait_list)) in ktest_mutex_case1()
63 … struct mutex_waiter_t *wt = container_of(list_next(&mtx.wait_list), struct mutex_waiter_t, list); in ktest_mutex_case1()
/DragonOS-0.1.5/kernel/src/common/
Dwait_queue.h14 struct List wait_list; member
56 struct List wait_list; member
Dmutex.h21 struct List wait_list; // Mutex的等待队列 member
/DragonOS-0.1.5/kernel/src/sched/
Dcompletion.c42 while (!list_empty(&x->wait_queue.wait_list)) in complete_all()
66 if (list_empty(&wait.wait_list)) in __wait_for_common()
67 list_append(&x->wait_queue.wait_list, &wait.wait_list); in __wait_for_common()
79 if (!list_empty(&wait.wait_list)) in __wait_for_common()
80 list_del_init(&wait.wait_list); // 必须使用del_init in __wait_for_common()
/DragonOS-0.1.5/docs/kernel/locking/
Dmutex.md40 wait_list: LinkedList<&'static mut process_control_block>,
137 struct List wait_list; // Mutex的等待队列
/DragonOS-0.1.5/docs/kernel/sched/
Dc_waiting.md34 struct List wait_list;
85 struct List wait_list;