1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-06-27 04:21:16 +02:00

Make LocalStore thread-safe

Necessary for multi-threaded commands like "nix verify-paths".
This commit is contained in:
Eelco Dolstra 2016-04-08 18:07:13 +02:00
parent 05fbc606fc
commit f398949b40
5 changed files with 246 additions and 217 deletions

View file

@ -22,11 +22,11 @@ namespace nix {
scope.
*/
template<class T>
template<class T, class M = std::mutex>
class Sync
{
private:
std::mutex mutex;
M mutex;
T data;
public:
@ -38,7 +38,7 @@ public:
{
private:
Sync * s;
std::unique_lock<std::mutex> lk;
std::unique_lock<M> lk;
friend Sync;
Lock(Sync * s) : s(s), lk(s->mutex) { }
public: