Use interlocked functions for thread safety.

This commit is contained in:
Mike McCormack 2004-11-19 18:03:56 +00:00 committed by Alexandre Julliard
parent c0b772dc51
commit fa4036eb79
1 changed files with 3 additions and 3 deletions

View File

@ -161,7 +161,7 @@ static IClassFactoryVtbl ITSSCF_Vtbl =
HRESULT WINAPI ITSS_DllGetClassObject(REFCLSID rclsid, REFIID iid, LPVOID *ppv)
{
int i;
DWORD i;
IClassFactoryImpl *factory;
TRACE("%s %s %p\n",debugstr_guid(rclsid), debugstr_guid(iid), ppv);
@ -230,14 +230,14 @@ ULONG WINAPI ITStorageImpl_AddRef(
{
ITStorageImpl *This = (ITStorageImpl *)iface;
TRACE("%p\n", This);
return ++(This->ref);
return InterlockedIncrement(&This->ref);
}
ULONG WINAPI ITStorageImpl_Release(
IITStorage* iface)
{
ITStorageImpl *This = (ITStorageImpl *)iface;
ULONG ref = --This->ref;
ULONG ref = InterlockedDecrement(&This->ref);
if (ref == 0)
HeapFree(GetProcessHeap(), 0, This);