time: add #[track_caller] to FutureExt::timeout (#7588)

Signed-off-by: Martin Tzvetanov Grigorov <[email protected]>
This commit is contained in:
Martin Grigorov
2025-09-11 09:18:40 +02:00
committed by GitHub
parent d8e8037de5
commit 7a0ca807be
2 changed files with 18 additions and 0 deletions
+1
View File
@@ -26,6 +26,7 @@ pub trait FutureExt: Future {
/// assert!(res.is_err());
/// # }
/// ```
#[track_caller]
fn timeout(self, timeout: std::time::Duration) -> tokio::time::Timeout<Self>
where
Self: Sized,
+17
View File
@@ -217,6 +217,23 @@ fn delay_queue_reserve_panic_caller() -> Result<(), Box<dyn Error>> {
Ok(())
}
#[test]
fn future_ext_to_panic_caller() -> Result<(), Box<dyn Error>> {
use tokio::{sync::oneshot, time::Duration};
use tokio_util::future::FutureExt;
let panic_location_file = test_panic(|| {
let (_tx, rx) = oneshot::channel::<()>();
// this panics because there is no runtime available
let _res = rx.timeout(Duration::from_millis(10));
});
// The panic location should be in this file
assert_eq!(&panic_location_file.unwrap(), file!());
Ok(())
}
fn basic() -> Runtime {
tokio::runtime::Builder::new_current_thread()
.enable_all()