| 1 | use crate::runtime::scheduler; |
|---|---|
| 2 | |
| 3 | #[track_caller] |
| 4 | pub(crate) fn block_in_place<F, R>(f: F) -> R |
| 5 | where |
| 6 | F: FnOnce() -> R, |
| 7 | { |
| 8 | #[cfg(tokio_unstable)] |
| 9 | { |
| 10 | use crate::runtime::{Handle, RuntimeFlavor::MultiThreadAlt}; |
| 11 | |
| 12 | match Handle::try_current().map(|h| h.runtime_flavor()) { |
| 13 | Ok(MultiThreadAlt) => { |
| 14 | return scheduler::multi_thread_alt::block_in_place(f); |
| 15 | } |
| 16 | _ => {} |
| 17 | } |
| 18 | } |
| 19 | |
| 20 | scheduler::multi_thread::block_in_place(f) |
| 21 | } |
| 22 |
