A simple non-blocking mutex (i.e. only `try_lock` is supported), using atomics.
Simpler and faster than the one found in stdlib. Does not support poisoning.
# Performance
This library has criterion benchmarks. Here is a output from running it on my
Ubuntu machine:
build_try time: [24.104 us 24.109 us 24.115 us]
Found 9 outliers among 100 measurements (9.00%)
4 (4.00%) high mild
5 (5.00%) high severe
build_std time: [2.0887 ms 2.1055 ms 2.1294 ms]
Found 5 outliers among 100 measurements (5.00%)
1 (1.00%) high mild
4 (4.00%) high severe
lock_try time: [613.61 us 613.77 us 613.98 us]
Found 9 outliers among 100 measurements (9.00%)
1 (1.00%) low severe
8 (8.00%) high severe
lock_std time: [1.5453 ms 1.5459 ms 1.5466 ms]
Found 11 outliers among 100 measurements (11.00%)
4 (4.00%) high mild
7 (7.00%) high severe
contested_try time: [1.0300 ms 1.0312 ms 1.0327 ms]
Found 14 outliers among 100 measurements (14.00%)
1 (1.00%) low mild
4 (4.00%) high mild
9 (9.00%) high severe
contested_std time: [2.3053 ms 2.3079 ms 2.3110 ms]
Found 19 outliers among 100 measurements (19.00%)
3 (3.00%) high mild
16 (16.00%) high severe
The gist of it is that, compared to `std::Mutex`, `TryMutex` is approximately 88
times faster to construct and twice as fast to lock. However, performance on
your OS and machine might vary, so be sure to run `cargo bench` yourself.