We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Version
tokio v1.38.0 ├── bytes v1.6.0 ├── libc v0.2.155 ├── mio v0.8.11 │ └── libc v0.2.155 ├── num_cpus v1.16.0 │ └── libc v0.2.155 ├── parking_lot v0.12.3 │ ├── lock_api v0.4.12 │ │ └── scopeguard v1.2.0 │ │ [build-dependencies] │ │ └── autocfg v1.3.0 │ └── parking_lot_core v0.9.10 │ ├── cfg-if v1.0.0 │ ├── libc v0.2.155 │ └── smallvec v1.13.2 ├── pin-project-lite v0.2.14 ├── signal-hook-registry v1.4.2 │ └── libc v0.2.155 ├── socket2 v0.5.7 │ └── libc v0.2.155 └── tokio-macros v2.3.0 (proc-macro) ├── proc-macro2 v1.0.85 (*) ├── quote v1.0.36 (*) └── syn v2.0.66 (*)
Platform
Darwin Takassh-MacBook-Pro.local 23.3.0 Darwin Kernel Version 23.3.0: Wed Dec 20 21:33:31 PST 2023; root:xnu-10002.81.5~7/RELEASE_ARM64_T8112 arm64
Description Hi thank you for watching this issue. I'm not sure if this is intentional or not but when I run below code, it takes 2 seconds to finish.
use std::time::{Duration, Instant}; #[tokio::main(flavor = "multi_thread", worker_threads = 4)] async fn main() { let start = Instant::now(); tokio::spawn(async { let handle = tokio::spawn(async { std::thread::sleep(Duration::from_secs(1)); println!("task 1 finished") }); std::thread::sleep(Duration::from_secs(1)); handle.await.unwrap(); }) .await .unwrap(); let duration = start.elapsed(); println!("Time elapsed is: {:?}", duration); }
On the other hand, when I try this code, it takes 1 second. I just removed outer spawn.
spawn
use std::time::{Duration, Instant}; #[tokio::main(flavor = "multi_thread", worker_threads = 4)] async fn main() { let start = Instant::now(); let handle = tokio::spawn(async { std::thread::sleep(Duration::from_secs(1)); println!("task 1 finished") }); std::thread::sleep(Duration::from_secs(1)); handle.await.unwrap(); let duration = start.elapsed(); println!("Time elapsed is: {:?}", duration); }
I expected to see the first code is finished around 1 second because std::thread::sleep hangs only current thread. doc says
std::thread::sleep
Puts the current thread to sleep for at least the specified amount of time.
Sorry if I misunderstand anything but if it's bug I thought I should create an issue to heads up.
The text was updated successfully, but these errors were encountered:
Hi. This issue might be duplicated to #6491.
Sorry, something went wrong.
See also #6315.
Thank you both!
No branches or pull requests
Version
Platform
Description
Hi thank you for watching this issue.
I'm not sure if this is intentional or not but when I run below code, it takes 2 seconds to finish.
On the other hand, when I try this code, it takes 1 second. I just removed outer
spawn
.I expected to see the first code is finished around 1 second because
std::thread::sleep
hangs only current thread.doc says
Sorry if I misunderstand anything but if it's bug I thought I should create an issue to heads up.
The text was updated successfully, but these errors were encountered: