# Crate crossbeam [−] [src]

Support for concurrent and parallel programming.

This crate is an early work in progress. The focus for the moment is concurrency:

- Non-blocking data structures. These data structures allow for high performance, highly-concurrent access, much superior to wrapping with a `Mutex`. Ultimately the goal is to include stacks, queues, deques, bags, sets and maps. These live in the `sync` module.

- Memory management. Because non-blocking data structures avoid global synchronization, it is not easy to tell when internal data can be safely freed. The `mem` module provides generic, easy to use, and high-performance APIs for managing memory in these cases. These live in the `mem` module.

- Synchronization. The standard library provides a few synchronization primitives (locks, barriers, etc) but this crate seeks to expand that set to include more advanced/niche primitives, as well as userspace alternatives. These live in the `sync` module.

- Scoped thread API. Finally, the crate provides a "scoped" thread API, making it possible to spawn threads that share stack data with their parents. This functionality is exported at the top-level.

## Modules

epoch | Epoch-based memory management
sync | Synchronization primitives.

## Structs

CachePadded | Pad `T` to the length of a cacheline.
Scope |
ScopedJoinHandle | A handle to a scoped thread

## Traits

ZerosValid | Types for which mem::zeroed() is safe.

## Functions

builder_spawn_unsafe ⚠ | Like `std::thread::Builder::spawn`, but without the closure bounds.
scope | Create a new `scope`, for deferred destructors.
spawn_unsafe ⚠ | Like `std::thread::spawn`, but without the closure bounds.

# Help

## Keyboard Shortcuts

`?`
  Show this help dialog
`S`
  Focus the search field
`↑`
  Move up in search results
`↓`
  Move down in search results
`↹`
  Switch tab
`⏎`
  Go to active search result
`+`
  Expand all sections
`-`
  Collapse all sections

## 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` or `* -> vec`)