From: Vijay Kiran Kamuju infyquest@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 4fc5a069fbb..10684f1c39d 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -17,9 +17,9 @@ @ stub -arch=arm ??0_CancellationTokenState@details@Concurrency@@AAA@XZ @ stub -arch=i386 ??0_CancellationTokenState@details@Concurrency@@AAE@XZ @ stub -arch=win64 ??0_CancellationTokenState@details@Concurrency@@AEAA@XZ -@ stub -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ(ptr) _Condition_variable_ctor @ thiscall -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ(ptr) _Condition_variable_ctor @ cdecl -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) _Condition_variable_ctor diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index 7b379830d4b..81a3c17dbb4 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -14,9 +14,9 @@ @ cdecl -arch=arm ??0SchedulerPolicy@Concurrency@@QAA@XZ(ptr) SchedulerPolicy_ctor @ thiscall -arch=i386 ??0SchedulerPolicy@Concurrency@@QAE@XZ(ptr) SchedulerPolicy_ctor @ cdecl -arch=win64 ??0SchedulerPolicy@Concurrency@@QEAA@XZ(ptr) SchedulerPolicy_ctor -@ stub -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ(ptr) _Condition_variable_ctor @ thiscall -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ(ptr) _Condition_variable_ctor @ cdecl -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) _Condition_variable_ctor diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index 37282fc54f8..e53e4f31e8a 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -12,9 +12,9 @@ @ cdecl -arch=arm ??0SchedulerPolicy@Concurrency@@QAA@XZ(ptr) msvcr120.??0SchedulerPolicy@Concurrency@@QAA@XZ @ thiscall -arch=i386 ??0SchedulerPolicy@Concurrency@@QAE@XZ(ptr) msvcr120.??0SchedulerPolicy@Concurrency@@QAE@XZ @ cdecl -arch=win64 ??0SchedulerPolicy@Concurrency@@QEAA@XZ(ptr) msvcr120.??0SchedulerPolicy@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ _Cancellation_beacon_ctor +@ thiscall -arch=i386 ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ _Cancellation_beacon_ctor +@ cdecl -arch=win64 ??0_Cancellation_beacon@details@Concurrency@@QEAA@XZ _Cancellation_beacon_ctor @ cdecl -arch=arm ??0_Condition_variable@details@Concurrency@@QAA@XZ(ptr) msvcr120.??0_Condition_variable@details@Concurrency@@QAA@XZ @ thiscall -arch=i386 ??0_Condition_variable@details@Concurrency@@QAE@XZ(ptr) msvcr120.??0_Condition_variable@details@Concurrency@@QAE@XZ @ cdecl -arch=win64 ??0_Condition_variable@details@Concurrency@@QEAA@XZ(ptr) msvcr120.??0_Condition_variable@details@Concurrency@@QEAA@XZ diff --git a/dlls/msvcrt/concurrency.c b/dlls/msvcrt/concurrency.c index fe156938e3a..91164675c25 100644 --- a/dlls/msvcrt/concurrency.c +++ b/dlls/msvcrt/concurrency.c @@ -330,6 +330,10 @@ typedef struct { CRITICAL_SECTION cs; } _ReentrantBlockingLock;
+typedef struct { + void *unk; +} _Cancellation_beacon; + #define TICKSPERMSEC 10000 typedef struct { const vtable_ptr *vtable; @@ -3253,6 +3257,16 @@ void __cdecl Concurrency_wait(unsigned int time) }
#if _MSVCR_VER>=110 +/* ??0_Cancellation_beacon@details@Concurrency@@QAA@XZ */ +/* ??0_Cancellation_beacon@details@Concurrency@@QAE@XZ */ +/* ??0_Cancellation_beacon@details@Concurrency@@QEAA@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@Concurrency@@YAXW4Agents_EventType@1@_JZZ */ void WINAPIV _Trace_agents(/*enum Concurrency::Agents_EventType*/int type, __int64 id, ...) {