pub struct ResourceLimitManager {
pub memory: MemoryResourceTracker,
pub cpu: CpuResourceTracker,
pub io: IoResourceTracker,
pub time: TimeResourceTracker,
pub fuel: Option<Arc<AtomicU64>>,
}Expand description
Main resource limit manager
Fields§
§memory: MemoryResourceTrackerMemory resource tracker
cpu: CpuResourceTrackerCPU resource tracker
io: IoResourceTrackerI/O resource tracker
time: TimeResourceTrackerTime resource tracker
fuel: Option<Arc<AtomicU64>>Fuel limit and usage
Implementations§
Source§impl ResourceLimitManager
impl ResourceLimitManager
Sourcepub fn new(limits: &ResourceLimits) -> Self
pub fn new(limits: &ResourceLimits) -> Self
Create a new resource limit manager
Sourcepub fn check_all_limits(&self) -> Result<()>
pub fn check_all_limits(&self) -> Result<()>
Check all resource limits
Sourcepub fn consume_fuel(&self, amount: u64) -> Result<()>
pub fn consume_fuel(&self, amount: u64) -> Result<()>
Consume fuel
Sourcepub fn reset_fuel(&self, amount: u64) -> Result<()>
pub fn reset_fuel(&self, amount: u64) -> Result<()>
Reset fuel
Sourcepub fn get_remaining_fuel(&self) -> Option<u64>
pub fn get_remaining_fuel(&self) -> Option<u64>
Get remaining fuel
Sourcepub fn start_monitor(&self) -> JoinHandle<()>
pub fn start_monitor(&self) -> JoinHandle<()>
Start a background monitor thread for resource limits
Trait Implementations§
Source§impl Clone for ResourceLimitManager
impl Clone for ResourceLimitManager
Source§fn clone(&self) -> ResourceLimitManager
fn clone(&self) -> ResourceLimitManager
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto Trait Implementations§
impl Freeze for ResourceLimitManager
impl RefUnwindSafe for ResourceLimitManager
impl Send for ResourceLimitManager
impl Sync for ResourceLimitManager
impl Unpin for ResourceLimitManager
impl UnsafeUnpin for ResourceLimitManager
impl UnwindSafe for ResourceLimitManager
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> GetSetFdFlags for T
impl<T> GetSetFdFlags for T
Source§fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
fn get_fd_flags(&self) -> Result<FdFlags, Error>where
T: AsFilelike,
Query the “status” flags for the
self file descriptor.Source§fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
fn new_set_fd_flags(&self, fd_flags: FdFlags) -> Result<SetFdFlags<T>, Error>where
T: AsFilelike,
Source§fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
fn set_fd_flags(&mut self, set_fd_flags: SetFdFlags<T>) -> Result<(), Error>where
T: Sized + AsFilelike,
Set the “status” flags for the
self file descriptor. Read moreSource§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> ⓘ
Converts
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> ⓘ
Converts
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