don't deplete RNG entropy when there is only one runnable task
This commit is contained in:
parent
9a78dc93db
commit
9a76d718c7
1 changed files with 4 additions and 4 deletions
|
|
@ -150,10 +150,10 @@ rust_sched_loop::release_task(rust_task *task) {
|
||||||
rust_task *
|
rust_task *
|
||||||
rust_sched_loop::schedule_task() {
|
rust_sched_loop::schedule_task() {
|
||||||
lock.must_have_lock();
|
lock.must_have_lock();
|
||||||
if (running_tasks.length() > 0) {
|
size_t tasks = running_tasks.length();
|
||||||
size_t k = rng_gen_u32(kernel, &rng);
|
if (tasks > 0) {
|
||||||
size_t i = k % running_tasks.length();
|
size_t i = (tasks > 1) ? (rng_gen_u32(kernel, &rng) % tasks) : 0;
|
||||||
return (rust_task *)running_tasks[i];
|
return running_tasks[i];
|
||||||
}
|
}
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue