pi_async_rt/lock/
mod.rs

1//! # 提供了异步运行时需要的队列和锁
2//!
3
4use std::hint::spin_loop;
5
6pub mod spin_lock;
7
8///
9/// 根据指定值进行自旋,返回下次自旋的值
10///
11#[inline]
12pub fn spin(mut len: u32) -> u32 {
13    if len < 1 {
14        len = 1;
15    } else if len > 10 {
16        len = 10;
17    }
18
19    for _ in 0..(1 << len) {
20        spin_loop()
21    }
22
23    len + 1
24}