[−][src]Struct zerogc_context::CollectorContext
Implementations
impl<C: RawCollectorImpl> CollectorContext<C>
[src]
Trait Implementations
impl<C: RawCollectorImpl> Drop for CollectorContext<C>
[src]
impl<C: RawCollectorImpl> GcContext for CollectorContext<C>
[src]
type System = CollectorRef<C>
The system used with this context
type Id = CollectorId<C>
The type of ids used in the system
pub unsafe fn basic_safepoint<T: Trace>(&mut self, value: &mut &mut T)
[src]
pub unsafe fn freeze(&mut self)
[src]
pub unsafe fn unfreeze(&mut self)
[src]
pub unsafe fn recurse_context<T, F, R>(&self, value: &mut &mut T, func: F) -> R where
T: Trace,
F: for<'gc> FnOnce(&'gc mut Self, &'gc mut T) -> R,
[src]
T: Trace,
F: for<'gc> FnOnce(&'gc mut Self, &'gc mut T) -> R,
impl<'gc, T, C> GcSimpleAlloc<'gc, T> for CollectorContext<C> where
T: GcSafe + 'gc,
C: RawSimpleAlloc,
[src]
T: GcSafe + 'gc,
C: RawSimpleAlloc,
impl<C: RawCollectorImpl> !Send for CollectorContext<C>
[src]
It's not safe for a context to be sent across threads.
We use (thread-unsafe) interior mutability to maintain the
shadow stack. Since we could potentially be cloned via safepoint_recurse!
,
implementing Send
would allow another thread to obtain a
reference to our internal &RefCell
. Further mutation/access
would be undefined.....
Auto Trait Implementations
impl<C> RefUnwindSafe for CollectorContext<C> where
<C as RawCollectorImpl>::RawContext: RefUnwindSafe,
[src]
<C as RawCollectorImpl>::RawContext: RefUnwindSafe,
impl<C> !Sync for CollectorContext<C>
[src]
impl<C> Unpin for CollectorContext<C>
[src]
impl<C> UnwindSafe for CollectorContext<C> where
<C as RawCollectorImpl>::RawContext: RefUnwindSafe,
[src]
<C as RawCollectorImpl>::RawContext: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,