Enum gdnative_core::export::user_data::DeadlockPolicy
source · pub enum DeadlockPolicy {
Allow,
Pessimistic,
Timeout(Duration),
}Expand description
Policies to deal with potential deadlocks
As Godot allows mutable pointer aliasing, doing certain things in exported method bodies may
lead to the engine calling another method on owner, leading to another locking attempt
within the same thread:
- Variant calls on anything may dispatch to a script method.
- Anything that could emit signals, that are connected to in a non-deferred manner.
As there is no universal way to deal with such situations, behavior of locking wrappers can be customized using this enum.
Variants§
Allow
Block on all locks. Deadlocks are possible.
Pessimistic
Never block on any locks. Methods will return Nil immediately if the lock isn’t available. Deadlocks are prevented.
Timeout(Duration)
Block on locks for at most Duration. Methods return Nil on timeout. Deadlocks are
prevented.
Trait Implementations§
source§impl Clone for DeadlockPolicy
impl Clone for DeadlockPolicy
source§fn clone(&self) -> DeadlockPolicy
fn clone(&self) -> DeadlockPolicy
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresource§impl Debug for DeadlockPolicy
impl Debug for DeadlockPolicy
source§impl Hash for DeadlockPolicy
impl Hash for DeadlockPolicy
source§impl Ord for DeadlockPolicy
impl Ord for DeadlockPolicy
source§fn cmp(&self, other: &DeadlockPolicy) -> Ordering
fn cmp(&self, other: &DeadlockPolicy) -> Ordering
1.21.0 · source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Compares and returns the maximum of two values. Read more
source§impl PartialEq<DeadlockPolicy> for DeadlockPolicy
impl PartialEq<DeadlockPolicy> for DeadlockPolicy
source§fn eq(&self, other: &DeadlockPolicy) -> bool
fn eq(&self, other: &DeadlockPolicy) -> bool
This method tests for
self and other values to be equal, and is used
by ==.source§impl PartialOrd<DeadlockPolicy> for DeadlockPolicy
impl PartialOrd<DeadlockPolicy> for DeadlockPolicy
source§fn partial_cmp(&self, other: &DeadlockPolicy) -> Option<Ordering>
fn partial_cmp(&self, other: &DeadlockPolicy) -> Option<Ordering>
1.0.0 · source§fn le(&self, other: &Rhs) -> bool
fn le(&self, other: &Rhs) -> bool
This method tests less than or equal to (for
self and other) and is used by the <=
operator. Read moreimpl Copy for DeadlockPolicy
impl Eq for DeadlockPolicy
impl StructuralEq for DeadlockPolicy
impl StructuralPartialEq for DeadlockPolicy
Auto Trait Implementations§
impl RefUnwindSafe for DeadlockPolicy
impl Send for DeadlockPolicy
impl Sync for DeadlockPolicy
impl Unpin for DeadlockPolicy
impl UnwindSafe for DeadlockPolicy
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.