From d1468c2b609df6b278fb9f9357441995ffd58939 Mon Sep 17 00:00:00 2001 From: Torge Matthies Date: Mon, 26 Sep 2022 23:04:01 +0200 Subject: [PATCH] msvcr110: Implement _StructuredTaskCollection constructor. --- dlls/msvcr120/tests/msvcr120.c | 6 +++--- dlls/msvcrt/concurrency.c | 10 ++++++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dlls/msvcr120/tests/msvcr120.c b/dlls/msvcr120/tests/msvcr120.c index 91e9bae1cf8..0a4fb383e0e 100644 --- a/dlls/msvcr120/tests/msvcr120.c +++ b/dlls/msvcr120/tests/msvcr120.c @@ -1403,7 +1403,7 @@ static void __cdecl chore_proc(_UnrealizedChore *_this) MSVCRT_bool canceling = call_func1( p__StructuredTaskCollection__IsCanceling, chore->chore.task_collection); - ok(canceling, "Task is not canceling\n"); + todo_wine ok(canceling, "Task is not canceling\n"); } } @@ -1433,7 +1433,7 @@ static void test_StructuredTaskCollection(void) skip("_StructuredTaskCollection constructor not implemented\n"); return; } - ok(task_coll.unk2 == 0x1fffffff, + todo_wine ok(task_coll.unk2 == 0x1fffffff, "_StructuredTaskCollection ctor set wrong unk2: 0x%x != 0x1fffffff\n", task_coll.unk2); ok(task_coll.unk3 == NULL, "_StructuredTaskCollection ctor set wrong unk3: %p != NULL\n", task_coll.unk3); @@ -1587,7 +1587,7 @@ static void test_StructuredTaskCollection(void) ok(b, "SetEvent failed\n"); status = p__StructuredTaskCollection__RunAndWait(&task_coll, NULL); - ok(status == 2, "_StructuredTaskCollection::_RunAndWait failed: %d\n", status); + todo_wine ok(status == 2, "_StructuredTaskCollection::_RunAndWait failed: %d\n", status); call_func1(p__StructuredTaskCollection_dtor, &task_coll); CloseHandle(chore_start_evt); diff --git a/dlls/msvcrt/concurrency.c b/dlls/msvcrt/concurrency.c index fbb2c8b4147..5a6bbec5452 100644 --- a/dlls/msvcrt/concurrency.c +++ b/dlls/msvcrt/concurrency.c @@ -1873,8 +1873,14 @@ DEFINE_THISCALL_WRAPPER(_StructuredTaskCollection_ctor, 8) _StructuredTaskCollection* __thiscall _StructuredTaskCollection_ctor( _StructuredTaskCollection *this, /*_CancellationTokenState*/void *token) { - FIXME("(%p): stub\n", this); - return NULL; + TRACE("(%p)\n", this); + + if (token) + FIXME("_StructuredTaskCollection with cancellation token not implemented!\n"); + + memset(this, 0, sizeof(*this)); + this->finished = FINISHED_INITIAL; + return this; } #endif /* _MSVCR_VER >= 110 */