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
sourceimpl Clone for DeadlockPolicy
impl Clone for DeadlockPolicy
sourcefn clone(&self) -> DeadlockPolicy
fn clone(&self) -> DeadlockPolicy
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moresourceimpl Debug for DeadlockPolicy
impl Debug for DeadlockPolicy
sourceimpl Hash for DeadlockPolicy
impl Hash for DeadlockPolicy
sourceimpl Ord for DeadlockPolicy
impl Ord for DeadlockPolicy
sourcefn cmp(&self, other: &DeadlockPolicy) -> Ordering
fn cmp(&self, other: &DeadlockPolicy) -> Ordering
1.21.0 · sourcefn max(self, other: Self) -> Self
fn max(self, other: Self) -> Self
Compares and returns the maximum of two values. Read more
1.21.0 · sourcefn min(self, other: Self) -> Self
fn min(self, other: Self) -> Self
Compares and returns the minimum of two values. Read more
1.50.0 · sourcefn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
fn clamp(self, min: Self, max: Self) -> Selfwhere
Self: PartialOrd<Self>,
Restrict a value to a certain interval. Read more
sourceimpl PartialEq<DeadlockPolicy> for DeadlockPolicy
impl PartialEq<DeadlockPolicy> for DeadlockPolicy
sourcefn eq(&self, other: &DeadlockPolicy) -> bool
fn eq(&self, other: &DeadlockPolicy) -> bool
sourceimpl PartialOrd<DeadlockPolicy> for DeadlockPolicy
impl PartialOrd<DeadlockPolicy> for DeadlockPolicy
sourcefn partial_cmp(&self, other: &DeadlockPolicy) -> Option<Ordering>
fn partial_cmp(&self, other: &DeadlockPolicy) -> Option<Ordering>
1.0.0 · sourcefn 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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<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,
sourcefn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key and return true if they are equal.