diff --git a/app/src/main/cpp/GPIOControl.cpp b/app/src/main/cpp/GPIOControl.cpp index 08831424..4edc5fb6 100644 --- a/app/src/main/cpp/GPIOControl.cpp +++ b/app/src/main/cpp/GPIOControl.cpp @@ -202,12 +202,14 @@ size_t GpioControl::TurnOff(int cmd, uint32_t delayedCloseTime/* = 0*/) { ts = time(NULL) + delayedCloseTime; } + size_t ref = 0; std::vector::iterator it; m_locker.lock(); for (it = m_items.begin(); it != m_items.end(); ++it) { if (it->cmd == cmd) { + ref = it->references; it->closeCmds++; if (ts > it->closeTime) { @@ -217,6 +219,7 @@ size_t GpioControl::TurnOff(int cmd, uint32_t delayedCloseTime/* = 0*/) } } m_locker.unlock(); + m_semaphore.release(); return 0; } @@ -247,7 +250,9 @@ size_t GpioControl::TurnOff(const std::vector& cmds, uint32_t delayedCloseT } } } - + m_locker.unlock(); + m_semaphore.release(); + return 0; } @@ -277,6 +282,8 @@ size_t GpioControl::TurnOff(const std::vector >& cmds) } } } + m_locker.unlock(); + m_semaphore.release(); return 0; }