Trait rs_lockfree::hazard_epoch::HazardNodeT[][src]

pub trait HazardNodeT: Drop {
    fn get_base_hazard_node(&self) -> *mut BaseHazardNode;
}

Trait HazardNodeT is used to achieve virtual function.

Required Methods

It's necessary to put BaseHazardNode, which can be accessed by method get_base_hazard_node, in custom struct.

Examples

use rs_lockfree::hazard_epoch::{BaseHazardNode, HazardNodeT, HazardEpoch};
use std::cell::RefCell;

struct Node<'a, T> {
    base: BaseHazardNode,
    cnt: &'a RefCell<i32>,
    v: T,
}

impl<'a, T> Drop for Node<'a, T> {
    fn drop(&mut self) {
        *self.cnt.borrow_mut() += 10;
    }
}

impl<'a, T> HazardNodeT for Node<'a, T> {
    fn get_base_hazard_node(&self) -> *mut BaseHazardNode {
        &self.base as *const _ as *mut _
    }
}

Implementors