//--------------------------------------------------------- // interruptor.h //--------------------------------------------------------- #include //--------------------------------------------------------- class interruptor { public: void lock(std::mutex &llave) { std::lock_guard lock(mutex); if (++contador == 1) llave.lock(); } void unlock(std::mutex &llave) { std::lock_guard lock(mutex); if (--contador == 0) llave.unlock(); } protected: std::mutex mutex; size_t contador = 0; }; //---------------------------------------------------------