cocomr / coco

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
http://coco.readthedocs.io/
MIT License
6 stars 3 forks source link

Lightweight Mutex #2

Open eruffaldi opened 7 years ago

eruffaldi commented 7 years ago

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