Skip to main content

Pin

Type Alias Pin 

Source
pub type Pin = Arc<dyn Any + Send + Sync>;
Expand description

What keeps a page alive for as long as a buffer points into it.

Opaque on purpose. The vector does not know what a page is and has no business looking inside one, it only has to hold the thing that stops the page being evicted, and the buffer manager at layer three decides what that thing is. The bounds are the load bearing part and they are here now: Send and Sync, because a chunk carrying one of these crosses a thread boundary every time the scheduler moves a pipeline, and 'static, because a handle with a lifetime on it would have put the lifetime back on Vector by another route.

Aliased Typeยง

pub struct Pin { /* private fields */ }