# Trait lock_api::RawMutex [−] [src]

    pub unsafe trait RawMutex {
        type GuardMarker;

        const INIT: Self;

        fn lock(&self);
        fn try_lock(&self) -> bool;
        unsafe fn unlock(&self);

        fn is_locked(&self) -> bool { ... }
    }

Basic operations for a mutex.

Types implementing this trait can be used by `Mutex` to form a safe and fully-functioning mutex type.

# Safety

Implementations of this trait must ensure that the mutex is actually exclusive: a lock can’t be acquired while the mutex is already locked.

## Associated Types

### `type GuardMarker` [src]

Marker type which determines whether a lock guard should be `Send`. Use one of the `GuardSend` or `GuardNoSend` helper types here.

Loading content...

## Associated Constants

### `const INIT: Self` [src]

Initial value for an unlocked mutex.

Loading content...

## Required methods

### `fn lock(&self)` [src]

Acquires this mutex, blocking the current thread until it is able to do so.

### `fn try_lock(&self) -> bool` [src]

Attempts to acquire this mutex without blocking. Returns `true` if the lock was successfully acquired and `false` otherwise.

### `unsafe fn unlock(&self)` [src]

Unlocks this mutex.

# Safety

This method may only be called if the mutex is held in the current context, i.e. it must be paired with a successful call to `lock`, `try_lock`, `try_lock_for` or `try_lock_until`.

Loading content...

## Provided methods

### `fn is_locked(&self) -> bool` [src]

Checks whether the mutex is currently locked.

Loading content...

## Implementors

Loading content...