From: Vijay Kiran Kamuju <infyquest(a)gmail.com> --- dlls/msvcr110/msvcr110.spec | 6 +++--- dlls/msvcr120/msvcr120.spec | 6 +++--- dlls/msvcr120_app/msvcr120_app.spec | 6 +++--- dlls/msvcrt/concurrency.c | 14 ++++++++++++++ 4 files changed, 23 insertions(+), 9 deletions(-) diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index da4e22960b9..c8b359af4cb 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -17,9 +17,9 @@ @ stub -arch=arm ??0_CancellationTokenState(a)details@Concurrency@@AAA(a)XZ @ stub -arch=i386 ??0_CancellationTokenState(a)details@Concurrency@@AAE(a)XZ @ stub -arch=win64 ??0_CancellationTokenState(a)details@Concurrency@@AEAA(a)XZ -@ stub -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ -@ stub -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ -@ stub -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ +@ cdecl -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable(a)details@Concurrency@@QAA(a)XZ(ptr) _Condition_variable_ctor @ thiscall -arch=i386 ??0_Condition_variable(a)details@Concurrency@@QAE(a)XZ(ptr) _Condition_variable_ctor @ cdecl -arch=win64 ??0_Condition_variable(a)details@Concurrency@@QEAA(a)XZ(ptr) _Condition_variable_ctor diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 1eff4e82f61..e4d07166ccc 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -14,9 +14,9 @@ @ cdecl -arch=arm ??0SchedulerPolicy(a)Concurrency@@QAA(a)XZ(ptr) SchedulerPolicy_ctor @ thiscall -arch=i386 ??0SchedulerPolicy(a)Concurrency@@QAE(a)XZ(ptr) SchedulerPolicy_ctor @ cdecl -arch=win64 ??0SchedulerPolicy(a)Concurrency@@QEAA(a)XZ(ptr) SchedulerPolicy_ctor -@ stub -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ -@ stub -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ -@ stub -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ +@ cdecl -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable(a)details@Concurrency@@QAA(a)XZ(ptr) _Condition_variable_ctor @ thiscall -arch=i386 ??0_Condition_variable(a)details@Concurrency@@QAE(a)XZ(ptr) _Condition_variable_ctor @ cdecl -arch=win64 ??0_Condition_variable(a)details@Concurrency@@QEAA(a)XZ(ptr) _Condition_variable_ctor diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index bb1d6914c40..690c7a0962f 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -12,9 +12,9 @@ @ cdecl -arch=arm ??0SchedulerPolicy(a)Concurrency@@QAA(a)XZ(ptr) msvcr120.??0SchedulerPolicy(a)Concurrency@@QAA(a)XZ @ thiscall -arch=i386 ??0SchedulerPolicy(a)Concurrency@@QAE(a)XZ(ptr) msvcr120.??0SchedulerPolicy(a)Concurrency@@QAE(a)XZ @ cdecl -arch=win64 ??0SchedulerPolicy(a)Concurrency@@QEAA(a)XZ(ptr) msvcr120.??0SchedulerPolicy(a)Concurrency@@QEAA(a)XZ -@ stub -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ -@ stub -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ -@ stub -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ +@ cdecl -arch=arm ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable(a)details@Concurrency@@QAA(a)XZ(ptr) msvcr120.??0_Condition_variable(a)details@Concurrency@@QAA(a)XZ @ thiscall -arch=i386 ??0_Condition_variable(a)details@Concurrency@@QAE(a)XZ(ptr) msvcr120.??0_Condition_variable(a)details@Concurrency@@QAE(a)XZ @ cdecl -arch=win64 ??0_Condition_variable(a)details@Concurrency@@QEAA(a)XZ(ptr) msvcr120.??0_Condition_variable(a)details@Concurrency@@QEAA(a)XZ diff --git a/dlls/msvcrt/concurrency.c b/dlls/msvcrt/concurrency.c index d0f029650ac..58c59616eb4 100644 --- a/dlls/msvcrt/concurrency.c +++ b/dlls/msvcrt/concurrency.c @@ -350,6 +350,10 @@ typedef struct { CRITICAL_SECTION cs; } _ReentrantBlockingLock; +typedef struct { + void *unk; +} _Cancellation_beacon; + #define TICKSPERMSEC 10000 typedef struct { const vtable_ptr *vtable; @@ -3431,6 +3435,16 @@ void __cdecl Concurrency_wait(unsigned int time) } #if _MSVCR_VER>=110 +/* ??0_Cancellation_beacon(a)details@Concurrency@@QAA(a)XZ */ +/* ??0_Cancellation_beacon(a)details@Concurrency@@QAE(a)XZ */ +/* ??0_Cancellation_beacon(a)details@Concurrency@@QEAA(a)XZ */ +DEFINE_THISCALL_WRAPPER(_Cancellation_beacon_ctor, 4) +_Cancellation_beacon* __thiscall _Cancellation_beacon_ctor(_Cancellation_beacon *this) +{ + FIXME("(%p)\n", this); + return this; +} + /* ?_Trace_agents(a)Concurrency@@YAXW4Agents_EventType(a)1@_JZZ */ void WINAPIV _Trace_agents(/*enum Concurrency::Agents_EventType*/int type, __int64 id, ...) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2679