Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion development/core/src/SOClt/SOCltEntry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,6 +91,9 @@ static SOCmnList<SOCltCallback> g_callbackQueue;

SOCltEntry::SOCltEntry(IN DWORD objType)
: SOCltElement(SOCMNOBJECT_TYPE_ENTRY | SOCMNOBJECT_TYPE_ROOT | objType)
#ifdef SOFEATURE_DCOM
, m_bCoUnInit(false)
#endif
{
m_terminateLock = TRUE;
#ifdef SOFEATURE_DCOM
Expand Down Expand Up @@ -146,6 +149,7 @@ BOOL SOCltEntry::initialize(
if (SUCCEEDED(res))
{
m_coInit = coInit;
m_bCoUnInit = true;
}

#endif // SOFEATURE_DCOM
Expand Down Expand Up @@ -225,7 +229,7 @@ BOOL SOCltEntry::terminate(void)
removeAllBranches(TRUE);
#ifdef SOFEATURE_DCOM

if (m_coInit != 0)
if (m_bCoUnInit)
{
::CoUninitialize();
}
Expand Down
2 changes: 1 addition & 1 deletion development/core/src/SOCmn/SOCmnList.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -717,7 +717,7 @@ BOOL SOCmnListHeader::create(
// something went wrong and the old type can not determined
SOCMN_FREE_OBJECT_C(m_info, (SOCmnListInfoFullList*));
SOCMN_FREE_OBJECT_C(m_info, (SOCmnListInfoSimpleList*));
SOCMN_FREE_OBJECT_C(m_info, (SOCmnListInfoSimpleList*));
SOCMN_FREE_OBJECT_C(m_info, (SOCmnListInfoMap*));
}

WORD hashTableSize = 17;
Expand Down
3 changes: 3 additions & 0 deletions development/core/src/SODaS/SODaSEntry.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -61,6 +61,7 @@

static SODaSEntry* g_engine = NULL;
static SOCmnSync g_engineSync;
static SOCmnSync g_namespaceSync;

#ifdef SOFEATURE_DCOM
#ifndef SOFEATURE_COMBINED_SERVER
Expand Down Expand Up @@ -674,6 +675,8 @@ SODaSNameSpaceRoot* SODaSEntry::getNameSpaceRoot(
return NULL;
}

SOCmnSingleLock<SOCmnSync> lock(&g_namespaceSync);

if (m_nsRoot[serverInstance] != NULL)
{
m_nsRoot[serverInstance]->addRef();
Expand Down
1 change: 1 addition & 0 deletions development/core/src/include/SOCltEntry.h
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ class SOCLT_EXPORT SOCltEntry :
BOOL m_terminateLock; // termination lock
#ifdef SOFEATURE_DCOM
DWORD m_coInit; // COM init mode
bool m_bCoUnInit; // Flag for CoUnInitialize, because m_coInit can be set to zero (COINIT_MULTITHREADED == 0).
#endif

// Overrides
Expand Down