//--------------------------------------------------------- // interruptor.h //--------------------------------------------------------- #include #include #include //--------------------------------------------------------- class interruptor { public: interruptor(): contador(0) {} 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(); } private: unsigned contador; std::mutex mutex; }; //---------------------------------------------------------