12345678910111213141516171819202122232425262728293031323334353637 |
- #pragma once
- class LogicDriver;
- namespace DIOS::Dev::Detail::MachineryECOM
- {
- class LogicDriverThreadLocker : public DiosLock
- {
- public:
- LogicDriverThreadLocker();
- ~LogicDriverThreadLocker();
- public:
- static LogicDriverThreadLocker *Instance();
- void Initialize(LogicDriver *logicDriver);
- DWORD Lock();
- void UnLock();
- private:
- static LogicDriverThreadLocker *m_Instance;
- mutex driver_Mutex;
- };
- class AutoLockLogicDriverThread
- {
- public:
- AutoLockLogicDriverThread()
- {
- LogicDriverThreadLocker::Instance()->Lock();
- }
- ~AutoLockLogicDriverThread()
- {
- LogicDriverThreadLocker::Instance()->UnLock();
- }
- };
- }
|