LAPTOP-SNT8I5JK\Boounion
2025-05-27 e42e8364112e97d89eeaecd13f043dff42179949
SourceCode/Bond/Servo/Context.cpp
@@ -4,6 +4,7 @@
CContext::CContext()
{
   m_onReleaseCallback = nullptr;
   m_nRef = 0;
   m_nRetCode = 0;
   m_hEvent = ::CreateEvent(NULL, TRUE, FALSE, NULL);
@@ -20,6 +21,11 @@
   DeleteCriticalSection(&m_criticalSection);
}
void CContext::setOnRelease(ONRELEASECALLBACK fOnRelease)
{
   m_onReleaseCallback = fOnRelease;
}
int CContext::addRef()
{
   Lock();
@@ -32,13 +38,20 @@
int CContext::release()
{
   Lock();
   m_nRef--;
   BOOL bDelete = m_nRef == 0;
   Unlock();
   if (m_nRef > 0) {
      m_nRef--;
      BOOL bRefCount0 = m_nRef == 0;
      Unlock();
   int nRef = m_nRef;;
   if (bDelete) delete this;
   return nRef;
      if (bRefCount0 && m_onReleaseCallback != nullptr) {
         m_onReleaseCallback(this);
      }
   }
   else {
      Unlock();
   }
   return m_nRef;
}
void CContext::setRetCode(int code)