6 #ifndef _INC_cThreadLockRef_H
7 #define _INC_cThreadLockRef_H
42 template<
class TYPE = cThreadLockableRef >
56 #if defined(_MT) || defined(__linux__)
60 void SetFirstLockObj(
TYPE* p2)
85 if (!p2->LockTry(dwWaitMS))
89 p2->onThreadLockFail(dwWaitMS);
114 SetFirstLockObjTry(p2, dwWaitMS);
119 SetFirstLockObj(ref.
get_Ptr());
140 operator TYPE* ()
const
166 return SetFirstLockObjTry(p2, dwWaitMS);
#define GRAYCORE_LINK
Definition: GrayCore.h:47
#define DYNPTR_CAST(t, p)
Definition: PtrCast.h:22
#define TYPE
Definition: StrT.cpp:38
#define UNREFERENCED_PARAMETER(P)
< _WIN32 type thing. get rid of stupid warning.
Definition: SysTypes.h:299
#define ASSERT(exp)
Definition: cDebugAssert.h:87
Definition: cPtrFacade.h:19
TYPE * m_p
Pointer to some object of TYPE.
Definition: cPtrFacade.h:28
TYPE & operator*() const
Definition: cPtrFacade.h:111
TYPE * get_Ptr() const noexcept
Definition: cPtrFacade.h:53
TYPE * operator->() const
Definition: cPtrFacade.h:116
Definition: cRefPtr.h:225
THIS_t & operator=(const cThreadLockableRef *p2)
Definition: cRefPtr.h:342
void ReleasePtr()
Definition: cRefPtr.h:320
void put_Ptr(cThreadLockableRef *p)
Definition: cRefPtr.h:310
Definition: cThreadLockRef.h:44
Definition: cThreadLock.h:498
Definition: cThreadLockRef.h:20
virtual ~cThreadLockableRef()
Definition: cThreadLockRef.h:30
cThreadLockableRef(int iStaticRefCount=0) noexcept
Definition: cThreadLockRef.h:26
virtual void onThreadLockFail(TIMESYSD_t dwWaitMS)
Definition: cThreadLockRef.h:33
< The main namespace for all Core functions.
Definition: GrayCore.cpp:14
INT32 TIMESYSD_t
Time delta. signed milli-Seconds Span. cTimeSys::k_DMAX, cTimeSys::k_INF = MAILSLOT_WAIT_FOREVER.
Definition: cTimeSys.h:28
cThreadLockRef< cThreadLockableRef > cThreadLockRefX
Definition: cThreadLockRef.h:183