global_counter
Sometimes you just want to count something globally, dont want to worry about data races, other race conditions, all the fun stuff.
That's what this crate is for. It supplies global counters, which build on thoroughly tested synchronization primitives, namely parking_lots Mutex for the generic counter (by default) and the stdlibs atomic types for the primitive counters.
Usage
Add the following dependency to your Cargo.toml file:
[]
= "0.1.4"
Use the #[macro_use] annotation when importing, like this:
extern crate global_counter;
If you want to disable using parking_lot, and instead use the stdlibs Mutex, disable the corresponding feature:
[]
= "0.1.4"
= false
Examples
extern crate global_counter;
use Inc;
use LinkedList;
use FromIterator;
// Note how this (supposedly) doesnt implement `Clone`.
>);
// Incrementing to us means just inserting another element.
// Some helper methods.
// We create a new global, thread-safe Counter.
// Could also do this in the main fn.
global_counter!;
extern crate global_counter;
use CounterUsize;
use ;
License
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.