Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
#define P6_IMPLEMENT_THREADSAFE_RELEASE (   classname)
Value:
P6R::P6INT32 classname::release() { \
P6ASSERT(0 != m_cRef.value); \
P6R::P6INT32 tmp = P6R::p6AtomicDec32(&m_cRef.value); \
P6R::p6TraceRelease((const P6R::P6CHAR*)#classname,this,tmp,NULL); \
if(0 == tmp) { delete this; } \
return tmp; \
}
#define P6ASSERT(expr)
P6ASSERT should be used in place of any platform/compiler specific assert.
Definition: p6defs.h:238
P6API P6INT32 P6CCALL p6AtomicDec32(P6INT32 volatile *pVar)
Atomically decrements the variable pointed to by pVar by one.
int32_t P6INT32
Definition: p6types.h:76
char P6CHAR
Narrow character type.
Definition: p6types.h:105

Definition at line 98 of file p6comhlpr.h.