pub enum ExclusiveResource {
System,
Dpkg,
Snap,
RpmOstree,
Flatpak,
}Expand description
A system-wide lock that only one mutating action may hold at a time.
These are the real kernel/daemon locks that make two concurrent actions
fail rather than merely interleave: apt/dpkg serialise on
/var/lib/dpkg/lock-frontend, snapd on its change queue, rpm-ostree
on its transaction lock. Two actions contending for the same resource do
not produce a partial result — one of them errors out mid-way, which for a
package operation can leave dpkg needing --configure -a.
Variants§
System
The whole machine. Claimed by any High-risk reboot-required action (release upgrade, rebase, layered-package install), which conflicts with every other mutating action regardless of resource.
Dpkg
The dpkg/apt database lock. Ubuntu/Debian package operations.
Snap
The snapd change queue.
RpmOstree
The rpm-ostree transaction lock.
Flatpak
The flatpak installation lock.
Implementations§
Trait Implementations§
Source§impl Clone for ExclusiveResource
impl Clone for ExclusiveResource
Source§fn clone(&self) -> ExclusiveResource
fn clone(&self) -> ExclusiveResource
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for ExclusiveResource
Source§impl Debug for ExclusiveResource
impl Debug for ExclusiveResource
impl Eq for ExclusiveResource
Source§impl Hash for ExclusiveResource
impl Hash for ExclusiveResource
Source§impl PartialEq for ExclusiveResource
impl PartialEq for ExclusiveResource
impl StructuralPartialEq for ExclusiveResource
Auto Trait Implementations§
impl Freeze for ExclusiveResource
impl RefUnwindSafe for ExclusiveResource
impl Send for ExclusiveResource
impl Sync for ExclusiveResource
impl Unpin for ExclusiveResource
impl UnsafeUnpin for ExclusiveResource
impl UnwindSafe for ExclusiveResource
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more