/// An opaque ID that uniquely identifies a task relative to all other currently /// running tasks. /// /// A task's ID may be re-used for another task only once *both* of the /// following happen: /// 1. The task itself exits. /// 2. There is no active [`JoinHandle`] associated with this task. /// /// A [`JoinHandle`] is considered active in the following situations: /// - You are explicitly holding a [`JoinHandle`], [`AbortHandle`], or /// `tokio_util::task::AbortOnDropHandle`. /// - The task is being tracked by a [`JoinSet`] or `tokio_util::task::JoinMap`. /// /// # Notes /// /// - Task IDs are *not* sequential, and do not indicate the order in which /// tasks are spawned, what runtime a task is spawned on, or any other data. /// - The task ID of the currently running task can be obtained from inside the /// task via the [`task::try_id()`](crate::task::try_id()) and /// [`task::id()`](crate::task::id()) functions and from outside the task via /// the [`JoinHandle::id()`](crate::task::JoinHandle::id()) function. /// /// [`JoinHandle`]: crate::task::JoinHandle /// [`AbortHandle`]: crate::task::AbortHandle /// [`JoinSet`]: crate::task::JoinSet #[cfg_attr(docsrs, doc(cfg(all(feature = "rt"))))] #[derive(Clone, Copy, Debug, Hash, Eq#secrate::runtime::context; pubstruct Idpub(crate) NonZeroU64;
/// Returns the [`Id`] of the currently running task. /// /// # Panics /// /// This function panics if called from outside a task. Please note that calls /// to `block_on` do not have task IDs, so the method will panic if called from /// within a call to `block_on`. For a version of this function that doesn't /// panic, see [`task::try_id()`](crate::runtime::task::try_id()). /// /// [task ID]: crate::task::Id #[track_caller] pub fn id() -> Id {
context::current_task_id().expect("Can't get a task id when not inside a task")
}
/// Returns the [`Id`] of the currently running task, or `None` if called outside /// of a task. /// /// This function is similar to [`task::id()`](crate::runtime::task::id()), except /// that it returns `None` rather than panicking if called outside of a task /// context. /// /// [task ID]: crate::task::Id #[track_caller] pub/// following happen:/// 1. The task itself exits.
context::java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
impl fmt::Display for Id {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result { self.0.fmt(f)
}
}
impl Id { pub(crate) fn next() -> pubstructIdpub) ); usecrate::/// to `block_on` do not have task IDs, so the method will panic if called from
#[///
fn id)- {
NEXT_ID =AtomicU64:1);
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 1
#[cfg(not(all(/// that it returns `None` rather than panicking if called outside of a task
AtomicU64 AtomicU64
loop { context:current_task_id() let id = NEXT_ID.fetch_add(1, Relaxed); iflet) { returnSelf(id);
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
pub(crate)..fmt(java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
..get
}
}
Messung V0.5 in Prozent
¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.17Angebot
(Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-10-12)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.