pub unsafe trait UnsafeHrTimerPointer: Sync + Sized {
type TimerHandle: HrTimerHandle;
// Required method
unsafe fn start(self, expires: Ktime) -> Self::TimerHandle;
}
Expand description
Unsafe version of HrTimerPointer
for situations where leaking the
HrTimerHandle
returned by start
would be unsound. This is the case for
stack allocated timers.
Typical implementers are pinned references such as Pin<&T>
.
§Safety
Implementers of this trait must ensure that instances of types implementing
UnsafeHrTimerPointer
outlives any associated HrTimerPointer::TimerHandle
instances.
Required Associated Types§
Sourcetype TimerHandle: HrTimerHandle
type TimerHandle: HrTimerHandle
A handle representing a running timer.
§Safety
If the timer is running, or if the timer callback is executing when the
handle is dropped, the drop method of Self::TimerHandle
must not return
until the timer is stopped and the callback has completed.
Required Methods§
Sourceunsafe fn start(self, expires: Ktime) -> Self::TimerHandle
unsafe fn start(self, expires: Ktime) -> Self::TimerHandle
Start the timer after expires
time units. If the timer was already
running, it is restarted at the new expiry time.
§Safety
Caller promises keep the timer structure alive until the timer is dead.
Caller can ensure this by not leaking the returned Self::TimerHandle
.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.