-
- Enable the crate to build with the latest nightly version and also fix this in the
rust-toolchain.toml
file. - use Rust edition 2021
- Rename the RWLock functions that provides a write lock from
lock
towrite
. This corresponds to read lock provided by theread
functions.
- Enable the crate to build with the latest nightly version and also fix this in the
-
- Adjust the usage of
Send
andSync
trait bounds for thesync
versions ofMutex
andRWLock
based on a comment on the rust user forums that the actual usage might not be sound.
- Adjust the usage of
This is a maintenance release only - migrating the pipeline to github actions.
-
- provide method
into_inner
for theMutex
,RWLock
and their async variation to be able move the contained the sealed data out of the locks.
- provide method
This version provides a major refactoring to introduce commonly used names for the different kinds of locks. Datalock
becomes Mutex
and DataRWlock
becomes RWLock
. With a feature gate also async
versions of those locks are introduced.
-
- Provide async mutex and semaphore versions
-
- Rename
DataLock
toMutex
- Rename
DataRWLock
toRWLock
- Introducing the enhances travis-ci pipeline to build and publish this crate
- pipeline build with an older nightly version due to this issue
- Rename
-
- Introduce a
DataRWLock
that enhances theDataLock
in a way that in addition to mutual exclusive access a read-only access is also possible.
- Introduce a
-
- The
Semaphore
does now support counter of typeu32
instead ofu16
. - Flag some of the lock functions to allow the compiler to inline them as port of the optimization to increase performance
- Use
cargo-make
for convinient and reliable cross platform build execution to reduce maintenance efforts for local and CI builds.
- The
-
Fix issues with
Semaphore
,DataLock
andSpinlock
that sometimes does not released a protected resource due to missing data memory and data syncronisation barriers not used as pointed out in this document: http://infocenter.arm.com/help/topic/com.arm.doc.dht0008a/DHT0008A_arm_synchronization_primitives.pdf
-
- Remove the dependency to the interrupts. Locking will no longer disable/re-enable interrupt handling globally. Usage of blocking locks need to avoided inside interrupt handler to mitigate the risk of deadlocks.
-
Introduce a blocking
lock
function for theDataLock
. -
- Apply code quality improvements based on
clippy
- remove
ruspiro_pi3
feature gate as it is not needed/used
- Apply code quality improvements based on
-
- Adjust documentation to reflect the current state of developments