# Struct std::sync::StaticCondvar [−] [src]

    pub struct StaticCondvar {
        // some fields omitted
    }

Unstable (`static_condvar` #27717)

: may be merged with Condvar in the future

Statically allocated condition variables.

This structure is identical to `Condvar` except that it is suitable for use in static initializers for other structures.

# Examples

#![feature(static_condvar)] fn main() { use std::sync::{StaticCondvar, CONDVAR_INIT}; static CVAR: StaticCondvar = CONDVAR_INIT; }

    #![feature(static_condvar)]

    use std::sync::{StaticCondvar, CONDVAR_INIT};

    static CVAR: StaticCondvar = CONDVAR_INIT;

## Methods

### `impl StaticCondvar`

#### `const fn new() -> StaticCondvar`

Unstable (`static_condvar` #27717)

: may be merged with Condvar in the future

Creates a new condition variable

#### `fn wait<'a, T>(&'static self, guard: MutexGuard<'a, T>) -> LockResult<MutexGuard<'a, T>>`

Unstable (`static_condvar` #27717)

: may be merged with Condvar in the future

Blocks the current thread until this condition variable receives a notification.

See `Condvar::wait`.

#### `fn wait_timeout_ms<'a, T>(&'static self, guard: MutexGuard<'a, T>, ms: u32) -> LockResult<(MutexGuard<'a, T>, bool)>`

Deprecated since 1.6.0

: replaced by `std::sync::StaticCondvar::wait_timeout`

Waits on this condition variable for a notification, timing out after a specified duration.

See `Condvar::wait_timeout`.

#### `fn wait_timeout<'a, T>(&'static self, guard: MutexGuard<'a, T>, timeout: Duration) -> LockResult<(MutexGuard<'a, T>, WaitTimeoutResult)>`

Unstable (`static_condvar` #27717)

: may be merged with Condvar in the future

Waits on this condition variable for a notification, timing out after a specified duration.

See `Condvar::wait_timeout`.

#### `fn wait_timeout_with<'a, T, F>(&'static self, guard: MutexGuard<'a, T>, dur: Duration, f: F) -> LockResult<(MutexGuard<'a, T>, WaitTimeoutResult)> where F: FnMut(LockResult<&mut T>) -> bool`

Unstable (`static_condvar` #27717)

: may be merged with Condvar in the future

Waits on this condition variable for a notification, timing out after a specified duration.

The implementation will repeatedly wait while the duration has not passed and the function returns `false`.

See `Condvar::wait_timeout_with`.

#### `fn notify_one(&'static self)`

Unstable (`static_condvar` #27717)

: may be merged with Condvar in the future

Wakes up one blocked thread on this condvar.

See `Condvar::notify_one`.

#### `fn notify_all(&'static self)`

Unstable (`static_condvar` #27717)

: may be merged with Condvar in the future

Wakes up all blocked threads on this condvar.

See `Condvar::notify_all`.

#### `unsafe fn destroy(&'static self)`

Unstable (`static_condvar` #27717)

: may be merged with Condvar in the future

Deallocates all resources associated with this static condvar.

This method is unsafe to call as there is no guarantee that there are no active users of the condvar, and this also doesn't prevent any future users of the condvar. This method is required to be called to not leak memory on all platforms.

# Help

## Keyboard Shortcuts

?
  Show this help dialog
S
  Focus the search field
⇤
  Move up in search results
⇥
  Move down in search results
⏎
  Go to active search result

## Search Tricks

Prefix searches with a type followed by a colon (e.g. `fn:`) to restrict the search to a given type.

Accepted types are: `fn`, `mod`, `struct`, `enum`, `trait`, `type`, `macro`, and `const`.

Search functions by type signature (e.g. `vec -> usize`)