Struct lunatic_runtime::NODE [−][src]
pub struct NODE { /* fields omitted */ }Methods from Deref<Target = RwLock<Option<Node>>>
Attempts to acquire a read lock.
If a read lock could not be acquired at this time, then None is returned. Otherwise, a
guard is returned that releases the lock when dropped.
Examples
use async_lock::RwLock;
let lock = RwLock::new(1);
let reader = lock.read().await;
assert_eq!(*reader, 1);
assert!(lock.try_read().is_some());pub async fn read(&'_ self) -> RwLockReadGuard<'_, T>
pub async fn read(&'_ self) -> RwLockReadGuard<'_, T>
Acquires a read lock.
Returns a guard that releases the lock when dropped.
Note that attempts to acquire a read lock will block if there are also concurrent attempts to acquire a write lock.
Examples
use async_lock::RwLock;
let lock = RwLock::new(1);
let reader = lock.read().await;
assert_eq!(*reader, 1);
assert!(lock.try_read().is_some());pub fn try_upgradable_read(&self) -> Option<RwLockUpgradableReadGuard<'_, T>>
pub fn try_upgradable_read(&self) -> Option<RwLockUpgradableReadGuard<'_, T>>
Attempts to acquire a read lock with the possiblity to upgrade to a write lock.
If a read lock could not be acquired at this time, then None is returned. Otherwise, a
guard is returned that releases the lock when dropped.
Upgradable read lock reserves the right to be upgraded to a write lock, which means there can be at most one upgradable read lock at a time.
Examples
use async_lock::{RwLock, RwLockUpgradableReadGuard};
let lock = RwLock::new(1);
let reader = lock.upgradable_read().await;
assert_eq!(*reader, 1);
assert_eq!(*lock.try_read().unwrap(), 1);
let mut writer = RwLockUpgradableReadGuard::upgrade(reader).await;
*writer = 2;pub async fn upgradable_read(&'_ self) -> RwLockUpgradableReadGuard<'_, T>
pub async fn upgradable_read(&'_ self) -> RwLockUpgradableReadGuard<'_, T>
Attempts to acquire a read lock with the possiblity to upgrade to a write lock.
Returns a guard that releases the lock when dropped.
Upgradable read lock reserves the right to be upgraded to a write lock, which means there can be at most one upgradable read lock at a time.
Note that attempts to acquire an upgradable read lock will block if there are concurrent attempts to acquire another upgradable read lock or a write lock.
Examples
use async_lock::{RwLock, RwLockUpgradableReadGuard};
let lock = RwLock::new(1);
let reader = lock.upgradable_read().await;
assert_eq!(*reader, 1);
assert_eq!(*lock.try_read().unwrap(), 1);
let mut writer = RwLockUpgradableReadGuard::upgrade(reader).await;
*writer = 2;Attempts to acquire a write lock.
If a write lock could not be acquired at this time, then None is returned. Otherwise, a
guard is returned that releases the lock when dropped.
Examples
use async_lock::RwLock;
let lock = RwLock::new(1);
assert!(lock.try_write().is_some());
let reader = lock.read().await;
assert!(lock.try_write().is_none());Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for NODE
impl UnwindSafe for NODE
Blanket Implementations
Mutably borrows from an owned value. Read more
pub fn get_fd_flags(&self) -> Result<FdFlags, Error> where
T: AsFilelike,
pub fn get_fd_flags(&self) -> Result<FdFlags, Error> where
T: AsFilelike,
Query the “status” flags for the self file descriptor.
pub fn new_set_fd_flags(
&self,
fd_flags: FdFlags
) -> Result<SetFdFlags<T>, Error> where
T: AsFilelike,
pub fn new_set_fd_flags(
&self,
fd_flags: FdFlags
) -> Result<SetFdFlags<T>, Error> where
T: AsFilelike,
Create a new SetFdFlags value for use with set_fd_flags. Read more
pub fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error> where
T: AsFilelike,
pub fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error> where
T: AsFilelike,
Set the “status” flags for the self file descriptor. Read more
pub fn vzip(self) -> V
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more