/rust-atomic64

64 bits sized atomic integer type

Primary LanguageRustApache License 2.0Apache-2.0

Atomic64 - 64 bits integers with atomic operations for Rust

Warning

Use the types that are now included as unstable feature in std/sync AtomicU64 and AtomicI64 for platforms supporting atomic operations on 64 bits integers. It is recommended to use those when available on your target platforms.

Build Status

Usage

atomic64 is on Crates.io.

To use atomic64, first add this to your Cargo.toml:

[dependencies]
atomic64 = "0.1.0"

Then, add this to your crate root:

extern crate atomic64;

You can now use AtomicI64 and AtomicU64.

## Note

Due to the use of const fn to allow the creation of AtomicI64::new and AtomicU64::new in constant context, atomic64 is only usable on nightly rust. Maybe conditional compilation could solve the issue ?

Includes code derived from Syncbox.

## Internals

On 64-bits platforms, atomic64 will internally use Rust's AtomicIsize and AtomicUsize.

On 32-bits platforms, atomic64 will use an i64 or u64 wrapped by a Mutex. The performance will be wildly different between 32 and 64 bits platforms, with 64 bits expected to be faster.