Struct zerogc_context::CollectorContext [−][src]
pub struct CollectorContext<C: RawCollectorImpl> { /* fields omitted */ }
Implementations
impl<C: RawCollectorImpl> CollectorContext<C>
[src]
impl<C: RawCollectorImpl> CollectorContext<C>
[src]Trait Implementations
impl<C: RawCollectorImpl> Drop for CollectorContext<C>
[src]
impl<C: RawCollectorImpl> Drop for CollectorContext<C>
[src]impl<C: RawCollectorImpl> GcContext for CollectorContext<C>
[src]
impl<C: RawCollectorImpl> GcContext for CollectorContext<C>
[src]type System = CollectorRef<C>
type System = CollectorRef<C>
The system used with this context
type Id = CollectorId<C>
type Id = CollectorId<C>
The type of ids used in the system
unsafe fn basic_safepoint<T: Trace>(&mut self, value: &mut &mut T)
[src]
unsafe fn basic_safepoint<T: Trace>(&mut self, value: &mut &mut T)
[src]Inform the garbage collection system we are at a safepoint and are ready for a potential garbage collection. Read more
impl<'gc, T, C> GcSimpleAlloc<'gc, T> for CollectorContext<C> where
T: GcSafe + 'gc,
C: RawSimpleAlloc<'gc, T>,
[src]
impl<'gc, T, C> GcSimpleAlloc<'gc, T> for CollectorContext<C> where
T: GcSafe + 'gc,
C: RawSimpleAlloc<'gc, T>,
[src]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,
<C as RawCollectorImpl>::RawContext: RefUnwindSafe,
impl<C> !Sync for CollectorContext<C>
impl<C> Unpin for CollectorContext<C>
impl<C> UnwindSafe for CollectorContext<C> where
<C as RawCollectorImpl>::RawContext: RefUnwindSafe,
<C as RawCollectorImpl>::RawContext: RefUnwindSafe,