[][src]Struct linked_list_allocator::LockedHeap

pub struct LockedHeap(_);


impl LockedHeap[src]

pub const fn empty() -> LockedHeap[src]

Creates an empty heap. All allocate calls will return None.

pub unsafe fn new(heap_bottom: usize, heap_size: usize) -> LockedHeap[src]

Creates a new heap with the given bottom and size. The bottom address must be valid and the memory in the [heap_bottom, heap_bottom + heap_size) range must not be used for anything else. This function is unsafe because it can cause undefined behavior if the given address is invalid.

Methods from Deref<Target = Mutex<Heap>>

pub fn lock(&self) -> MutexGuard<T>[src]

Locks the spinlock and returns a guard.

The returned value may be dereferenced for data access and the lock will be dropped when the guard falls out of scope.

let mylock = spin::Mutex::new(0);
    let mut data = mylock.lock();
    // The lock is now locked and the data can be accessed
    *data += 1;
    // The lock is implicitly dropped

pub unsafe fn force_unlock(&self)[src]

Force unlock the spinlock.

This is extremely unsafe if the lock is not held by the current thread. However, this can be useful in some instances for exposing the lock to FFI that doesn't know how to deal with RAII.

If the lock isn't held, this is a no-op.

pub fn try_lock(&self) -> Option<MutexGuard<T>>[src]

Tries to lock the mutex. If it is already locked, it will return None. Otherwise it returns a guard within Some.

Trait Implementations

impl Deref for LockedHeap[src]

type Target = Mutex<Heap>

The resulting type after dereferencing.

impl GlobalAlloc for LockedHeap[src]

unsafe fn alloc_zeroed(&self, layout: Layout) -> *mut u8

Behaves like alloc, but also ensures that the contents are set to zero before being returned. Read more

unsafe fn realloc(
    ptr: *mut u8,
    layout: Layout,
    new_size: usize
) -> *mut u8

Shrink or grow a block of memory to the given new_size. The block is described by the given ptr pointer and layout. Read more

Auto Trait Implementations

impl Send for LockedHeap

impl Sync for LockedHeap

Blanket Implementations

impl<T> From for T[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto for T where
    U: TryFrom<T>, 

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, U> Into for T where
    U: From<T>, 

impl<T> Borrow for T where
    T: ?Sized

impl<T> BorrowMut for T where
    T: ?Sized

impl<T> Any for T where
    T: 'static + ?Sized