3 unstable releases
Uses old Rust 2015
| 0.1.0 | Feb 8, 2018 |
|---|---|
| 0.0.1 | Feb 6, 2018 |
| 0.0.0 | Jan 29, 2018 |
#13 in #transactional-memory
21KB
276 lines
intel-tsx-rtm
This crates provides a simple set of wrappers around Intel's TSX RTM instructions and associated intrinsics. It needs a C compiler to create a small shim. This is important because Rust's compiler does not like code with multiple returns. It does not depend on your compiler having the necessary headers (<immintrin.h>), and so can work with older compilers and other Operating Systems.
It uses third-party self-modifying code (Andi Kleen's tsx-tools) to provide runtime detection of CPUs without TSX and fallback to non-hardware paths.
Licensing
The license for this project is MIT.
lib.rs:
intel-tsx-rtm
This crates provides a simple set of wrappers around Intel's TSX RTM instructions and associated intrinsics.
It uses code to provide runtime detection of CPUs without TSX and fallback to non-hardware paths.
It is best to start with HardwareMemoryTransactionManager.
It will only compile with nightly (as of February 8th, 2018) because it uses the asm! macro.
Dependencies
~0.6–0.9MB
~18K SLoC