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 more
sourceimpl Debug for DeadlockPolicy
impl Debug for DeadlockPolicy
sourceimpl Hash for DeadlockPolicy
impl Hash for DeadlockPolicy
sourceimpl Ord for DeadlockPolicy
impl Ord for DeadlockPolicy
sourceimpl PartialEq<DeadlockPolicy> for DeadlockPolicy
impl PartialEq<DeadlockPolicy> for DeadlockPolicy
sourcefn 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 ==
. Read more
sourcefn ne(&self, other: &DeadlockPolicy) -> bool
fn ne(&self, other: &DeadlockPolicy) -> bool
This method tests for !=
.
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>
This method returns an ordering between self
and other
values if one exists. Read more
1.0.0 · sourcefn lt(&self, other: &Rhs) -> bool
fn lt(&self, other: &Rhs) -> bool
This method tests less than (for self
and other
) and is used by the <
operator. Read more
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 more
impl 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 T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
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<T> CallHasher for T where
T: Hash + ?Sized,
impl<T> CallHasher for T where
T: Hash + ?Sized,
sourceimpl<Q, K> Equivalent<K> for Q where
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Q where
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.
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more