|
|
|
@ -202,12 +202,14 @@ size_t GpioControl::TurnOff(int cmd, uint32_t delayedCloseTime/* = 0*/)
|
|
|
|
|
{
|
|
|
|
|
ts = time(NULL) + delayedCloseTime;
|
|
|
|
|
}
|
|
|
|
|
size_t ref = 0;
|
|
|
|
|
std::vector<ITEM>::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<int>& cmds, uint32_t delayedCloseT
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
m_locker.unlock();
|
|
|
|
|
m_semaphore.release();
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -277,6 +282,8 @@ size_t GpioControl::TurnOff(const std::vector<std::pair<int, uint32_t> >& cmds)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
m_locker.unlock();
|
|
|
|
|
m_semaphore.release();
|
|
|
|
|
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|