mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-15 01:07:17 +00:00
msvcr110: Reset chore task_collection earlier to prevent occasional test failure.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55686
This commit is contained in:
parent
450c358881
commit
5fa6014567
|
@ -2241,20 +2241,19 @@ static void execute_chore(_UnrealizedChore *chore,
|
||||||
static void CALLBACK chore_wrapper_finally(BOOL normal, void *data)
|
static void CALLBACK chore_wrapper_finally(BOOL normal, void *data)
|
||||||
{
|
{
|
||||||
_UnrealizedChore *chore = data;
|
_UnrealizedChore *chore = data;
|
||||||
volatile LONG *ptr;
|
struct _StructuredTaskCollection *task_collection = chore->task_collection;
|
||||||
LONG finished = 1;
|
LONG finished = 1;
|
||||||
|
|
||||||
TRACE("(%u %p)\n", normal, data);
|
TRACE("(%u %p)\n", normal, data);
|
||||||
|
|
||||||
if (!chore->task_collection)
|
if (!task_collection)
|
||||||
return;
|
return;
|
||||||
ptr = &chore->task_collection->finished;
|
|
||||||
|
|
||||||
if (InterlockedCompareExchange(ptr, 1, FINISHED_INITIAL) != FINISHED_INITIAL)
|
|
||||||
finished = InterlockedIncrement(ptr);
|
|
||||||
if (!finished)
|
|
||||||
call_Context_Unblock(chore->task_collection->event);
|
|
||||||
chore->task_collection = NULL;
|
chore->task_collection = NULL;
|
||||||
|
|
||||||
|
if (InterlockedCompareExchange(&task_collection->finished, 1, FINISHED_INITIAL) != FINISHED_INITIAL)
|
||||||
|
finished = InterlockedIncrement(&task_collection->finished);
|
||||||
|
if (!finished)
|
||||||
|
call_Context_Unblock(task_collection->event);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void __cdecl chore_wrapper(_UnrealizedChore *chore)
|
static void __cdecl chore_wrapper(_UnrealizedChore *chore)
|
||||||
|
|
Loading…
Reference in a new issue