struct RangeBlockedList {
blocked: Vec<Arc<RangeBlocked>>,
}Expand description
A list of ranges blocked for some kind of concurrent access.
Depending on the use, some will block all concurrent access (i.e. serializing writes will block both serializing and non-serializing writes (strong blockers)), while others will only block a subset (non-serializing writes will only block serializing writes (weak blockers)).
Fields§
§blocked: Vec<Arc<RangeBlocked>>The list of ranges.
Serializing writes (strong write blockers) are supposed to be rare, so it is important that entering and removing items into/from this list is cheap, not that iterating it is.
Implementations§
Source§impl RangeBlockedList
impl RangeBlockedList
Sourcefn collect_intersecting(
&self,
check_range: &Range<u64>,
intersecting: &mut FuturesUnordered<Receiver<()>>,
)
fn collect_intersecting( &self, check_range: &Range<u64>, intersecting: &mut FuturesUnordered<Receiver<()>>, )
Collects futures/receivers to await intersecting request.
Creates a channel for every intersecting request; blocking on the receiver will wait for the request to complete.
Trait Implementations§
Source§impl Debug for RangeBlockedList
impl Debug for RangeBlockedList
Source§impl Default for RangeBlockedList
impl Default for RangeBlockedList
Source§fn default() -> RangeBlockedList
fn default() -> RangeBlockedList
Returns the “default value” for a type. Read more
Auto Trait Implementations§
impl Freeze for RangeBlockedList
impl RefUnwindSafe for RangeBlockedList
impl Send for RangeBlockedList
impl Sync for RangeBlockedList
impl Unpin for RangeBlockedList
impl UnsafeUnpin for RangeBlockedList
impl UnwindSafe for RangeBlockedList
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more