Use fastrand v2.0.0 (#45)
This commit is contained in:
parent
85c20eb98b
commit
1a9e08ce73
|
@ -18,7 +18,7 @@ exclude = ["/.*"]
|
||||||
async-lock = "2.6"
|
async-lock = "2.6"
|
||||||
async-task = "4.0.0"
|
async-task = "4.0.0"
|
||||||
concurrent-queue = "2.0.0"
|
concurrent-queue = "2.0.0"
|
||||||
fastrand = "1.3.4"
|
fastrand = "2.0.0"
|
||||||
futures-lite = "1.11.0"
|
futures-lite = "1.11.0"
|
||||||
slab = "0.4.4"
|
slab = "0.4.4"
|
||||||
|
|
||||||
|
|
|
@ -227,12 +227,13 @@ impl<'a> Executor<'a> {
|
||||||
/// ```
|
/// ```
|
||||||
pub async fn run<T>(&self, future: impl Future<Output = T>) -> T {
|
pub async fn run<T>(&self, future: impl Future<Output = T>) -> T {
|
||||||
let runner = Runner::new(self.state());
|
let runner = Runner::new(self.state());
|
||||||
|
let mut rng = fastrand::Rng::new();
|
||||||
|
|
||||||
// A future that runs tasks forever.
|
// A future that runs tasks forever.
|
||||||
let run_forever = async {
|
let run_forever = async {
|
||||||
loop {
|
loop {
|
||||||
for _ in 0..200 {
|
for _ in 0..200 {
|
||||||
let runnable = runner.runnable().await;
|
let runnable = runner.runnable(&mut rng).await;
|
||||||
runnable.run();
|
runnable.run();
|
||||||
}
|
}
|
||||||
future::yield_now().await;
|
future::yield_now().await;
|
||||||
|
@ -748,7 +749,7 @@ impl Runner<'_> {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Waits for the next runnable task to run.
|
/// Waits for the next runnable task to run.
|
||||||
async fn runnable(&self) -> Runnable {
|
async fn runnable(&self, rng: &mut fastrand::Rng) -> Runnable {
|
||||||
let runnable = self
|
let runnable = self
|
||||||
.ticker
|
.ticker
|
||||||
.runnable_with(|| {
|
.runnable_with(|| {
|
||||||
|
@ -768,7 +769,7 @@ impl Runner<'_> {
|
||||||
|
|
||||||
// Pick a random starting point in the iterator list and rotate the list.
|
// Pick a random starting point in the iterator list and rotate the list.
|
||||||
let n = local_queues.len();
|
let n = local_queues.len();
|
||||||
let start = fastrand::usize(..n);
|
let start = rng.usize(..n);
|
||||||
let iter = local_queues
|
let iter = local_queues
|
||||||
.iter()
|
.iter()
|
||||||
.chain(local_queues.iter())
|
.chain(local_queues.iter())
|
||||||
|
|
Loading…
Reference in New Issue