Compact Components is a framework for the development of resource intensive applications with a focus on Mixed Reality applications and Robotics. This repository provides the core technology over which CoCo Mixed Reality is based
CoCo and SRGViz use extensively mutexes and in particular we employ boost::shared_mutex (now in C++17) for supporting in particular lock upgrades. Unfortunately these mutexes are quite heavyweight as shown from tests online (https://www.arangodb.com/2015/02/comparing-atomic-mutex-rwlocks/).
We should evaluate to introduce the use of RWLocks, available in pthread and also in modern Windows, to speed-up lock acquisition in core CoCo/SRGViz structures.
CoCo and SRGViz use extensively mutexes and in particular we employ boost::shared_mutex (now in C++17) for supporting in particular lock upgrades. Unfortunately these mutexes are quite heavyweight as shown from tests online (https://www.arangodb.com/2015/02/comparing-atomic-mutex-rwlocks/).
We should evaluate to introduce the use of RWLocks, available in pthread and also in modern Windows, to speed-up lock acquisition in core CoCo/SRGViz structures.
1) Find spots for improvements 2) Pick library providing lightweight mutexes 3) Replace! 4) Profile