#[repr(C)]pub struct splinter_event_bus {
pub dirty_mask: [atomic_uint_least64_t; 16],
pub owner_fd: atomic_int_least32_t,
pub owner_pid: atomic_int_least32_t,
}Expand description
@brief Event bus for kernel-assisted epoch-change notifications via eventfd.
The owner process calls splinter_event_bus_init() to create an eventfd and record its pid + fd here. Any process (including the owner) can then call splinter_event_bus_open() to obtain a process-local fd to the same kernel object via /proc/<owner_pid>/fd/<owner_fd>.
dirty_mask tracks which slot indices changed since the last read, allowing watchers to enumerate only modified slots instead of scanning the full store. Bits are OR’d in by writers; they are never cleared by the library. For stores with more than SPLINTER_MAX_SLOTS slots, indices are mapped modularly: physical_idx % (SPLINTER_EVENT_BUS_MASK_WORDS * 64).
Fields§
§dirty_mask: [atomic_uint_least64_t; 16]§owner_fd: atomic_int_least32_t§owner_pid: atomic_int_least32_tTrait Implementations§
Source§impl Clone for splinter_event_bus
impl Clone for splinter_event_bus
Source§fn clone(&self) -> splinter_event_bus
fn clone(&self) -> splinter_event_bus
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 moreimpl Copy for splinter_event_bus
Auto Trait Implementations§
impl Freeze for splinter_event_bus
impl RefUnwindSafe for splinter_event_bus
impl Send for splinter_event_bus
impl Sync for splinter_event_bus
impl Unpin for splinter_event_bus
impl UnsafeUnpin for splinter_event_bus
impl UnwindSafe for splinter_event_bus
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