mirror of
https://github.com/reactos/reactos.git
synced 2026-06-01 17:00:51 +08:00
[CSRSRV] Fix locking logic when destroying threads & processes
This commit is contained in:
committed by
Jérôme Gardou
parent
f5bace8536
commit
7054cd10b1
@@ -167,8 +167,9 @@ CsrLockedDereferenceProcess(PCSR_PROCESS CsrProcess)
|
||||
{
|
||||
/* Call the generic cleanup code */
|
||||
DPRINT1("Should kill process: %p\n", CsrProcess);
|
||||
CsrAcquireProcessLock();
|
||||
CsrProcessRefcountZero(CsrProcess);
|
||||
/* Acquire again, the lock it was released in CsrProcessRefcountZero */
|
||||
CsrAcquireProcessLock();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -474,8 +474,9 @@ CsrLockedDereferenceThread(IN PCSR_THREAD CsrThread)
|
||||
if (LockCount == 0)
|
||||
{
|
||||
/* Call the generic cleanup code */
|
||||
CsrAcquireProcessLock();
|
||||
CsrThreadRefcountZero(CsrThread);
|
||||
/* Acquire the lock again, it was released by CsrThreadRefcountZero */
|
||||
CsrAcquireProcessLock();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user