shared_futex | Fast , shared , upgradeable , non-recursive and non-fair mutex
kandi X-RAY | shared_futex Summary
kandi X-RAY | shared_futex Summary
shared_futex is a C++ library. shared_futex has no bugs, it has no vulnerabilities, it has a Permissive License and it has low support. You can download it from GitHub.
Fast, shared, upgradeable, non-recursive and non-fair mutex with support for x86 hardware lock elision via Transactional Synchronization Extensions (TSX). Written in modern cross-platform c++17. In active development. shared_futex encourages a safe RAII interface. Similiarly shared_futex can be locked for shared access. While exclusive locks are mutually exclusive with all other holders, mutiple shared holders are allowed to access the guarded critical section simultaneously. shared_futex can also be locked in upgradeable mode, which allows later to upgrade the lock to an exclusive lock. Upgradeable holders are mutually exclusive with other upgradeable and exclusive locks but not with shared holders. This invariant allows concurrency between shared and upgradeable lockers and, more importantly, ensures that the state of a guarded resource does not change between the upgradeable acquisition and the upgrade to an exclusive lock. In addition, Lock acquisitions attempts can be made with a given time-out. Or in a non-blocking manner via std::try_to_lock. Lock guards can also be manipulated manually. Lock guards meet the requirements of BasicLockable, Lockable and TimedLockable therefore can be used in conjunction with standard library utilities. E.g. avoiding deadlocks when locking multiple mutexes can be done via the standard library's std::lock. Likewise lock guards are default constructible and also meet the requirements of MoveConstructible and MoveAssignable but not of CopyConstructible or CopyAssignable. Therefore lock guards can be safely moved around, swapped and empty assigned via empty brace initialization. Locks can also be adopted. shared_futex default constructor is constexpr therefore a shared_futex is statically initialized making it safe to lock a mutex in the constructor of any static or global object. See c++ initialization order of non-local variables. When an intial lock attempt fails the locking protocol keeps retrying until either a timeout has been reached or lock was successfully acquired. Between iterations a backoff policy is executed. The backoff policy can spin, yield or park the thread.
Fast, shared, upgradeable, non-recursive and non-fair mutex with support for x86 hardware lock elision via Transactional Synchronization Extensions (TSX). Written in modern cross-platform c++17. In active development. shared_futex encourages a safe RAII interface. Similiarly shared_futex can be locked for shared access. While exclusive locks are mutually exclusive with all other holders, mutiple shared holders are allowed to access the guarded critical section simultaneously. shared_futex can also be locked in upgradeable mode, which allows later to upgrade the lock to an exclusive lock. Upgradeable holders are mutually exclusive with other upgradeable and exclusive locks but not with shared holders. This invariant allows concurrency between shared and upgradeable lockers and, more importantly, ensures that the state of a guarded resource does not change between the upgradeable acquisition and the upgrade to an exclusive lock. In addition, Lock acquisitions attempts can be made with a given time-out. Or in a non-blocking manner via std::try_to_lock. Lock guards can also be manipulated manually. Lock guards meet the requirements of BasicLockable, Lockable and TimedLockable therefore can be used in conjunction with standard library utilities. E.g. avoiding deadlocks when locking multiple mutexes can be done via the standard library's std::lock. Likewise lock guards are default constructible and also meet the requirements of MoveConstructible and MoveAssignable but not of CopyConstructible or CopyAssignable. Therefore lock guards can be safely moved around, swapped and empty assigned via empty brace initialization. Locks can also be adopted. shared_futex default constructor is constexpr therefore a shared_futex is statically initialized making it safe to lock a mutex in the constructor of any static or global object. See c++ initialization order of non-local variables. When an intial lock attempt fails the locking protocol keeps retrying until either a timeout has been reached or lock was successfully acquired. Between iterations a backoff policy is executed. The backoff policy can spin, yield or park the thread.
Support
Quality
Security
License
Reuse
Support
shared_futex has a low active ecosystem.
It has 18 star(s) with 0 fork(s). There are 2 watchers for this library.
It had no major release in the last 6 months.
shared_futex has no issues reported. There are no pull requests.
It has a neutral sentiment in the developer community.
The latest version of shared_futex is current.
Quality
shared_futex has no bugs reported.
Security
shared_futex has no vulnerabilities reported, and its dependent libraries have no vulnerabilities reported.
License
shared_futex is licensed under the BSD-3-Clause License. This license is Permissive.
Permissive licenses have the least restrictions, and you can use them in most projects.
Reuse
shared_futex releases are not available. You will need to build from source code and install.
Installation instructions are not available. Examples and code snippets are available.
Top functions reviewed by kandi - BETA
kandi's functional review helps you automatically verify the functionalities of the libraries and avoid rework.
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of shared_futex
Currently covering the most popular Java, JavaScript and Python libraries. See a Sample of shared_futex
shared_futex Key Features
No Key Features are available at this moment for shared_futex.
shared_futex Examples and Code Snippets
No Code Snippets are available at this moment for shared_futex.
Community Discussions
No Community Discussions are available at this moment for shared_futex.Refer to stack overflow page for discussions.
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
Vulnerabilities
No vulnerabilities reported
Install shared_futex
You can download it from GitHub.
Support
For any new features, suggestions and bugs create an issue on GitHub.
If you have any questions check and ask questions on community page Stack Overflow .
Find more information at:
Reuse Trending Solutions
Find, review, and download reusable Libraries, Code Snippets, Cloud APIs from over 650 million Knowledge Items
Find more librariesStay Updated
Subscribe to our newsletter for trending solutions and developer bootcamps
Share this Page