This is a simple multiple-reader, single-writer mutex class for C++14. Reader locks can be upgraded and then downgraded without being released. It uses a queue (allocated on the stack) to prevent writer starvation and to resolve lock acquisition conflicts. Writer lock acquisition requests are always fulfilled in FIFO order. |