From 245426c77e3ca31dc3eca00a79c734b71a6bd754 Mon Sep 17 00:00:00 2001 From: Piotr Caban Date: Thu, 26 Jan 2017 17:30:20 +0100 Subject: [PATCH] msvcr100: Add reader_writer_lock class stub. Signed-off-by: Piotr Caban Signed-off-by: Alexandre Julliard --- dlls/concrt140/concrt140.spec | 28 +++++----- dlls/msvcr100/msvcr100.spec | 28 +++++----- dlls/msvcr110/msvcr110.spec | 42 +++++++-------- dlls/msvcr120/msvcr120.spec | 42 +++++++-------- dlls/msvcr120_app/msvcr120_app.spec | 42 +++++++-------- dlls/msvcrt/lock.c | 79 +++++++++++++++++++++++++++++ 6 files changed, 170 insertions(+), 91 deletions(-) diff --git a/dlls/concrt140/concrt140.spec b/dlls/concrt140/concrt140.spec index 8d6549e130f..45a6bce7689 100644 --- a/dlls/concrt140/concrt140.spec +++ b/dlls/concrt140/concrt140.spec @@ -132,8 +132,8 @@ @ stub -arch=win64 ??0operation_timed_out@Concurrency@@QEAA@PEBD@Z @ stub -arch=win32 ??0operation_timed_out@Concurrency@@QAE@XZ @ stub -arch=win64 ??0operation_timed_out@Concurrency@@QEAA@XZ -@ stub -arch=win32 ??0reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ +@ thiscall -arch=win32 ??0reader_writer_lock@Concurrency@@QAE@XZ(ptr) msvcr120.??0reader_writer_lock@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ(ptr) msvcr120.??0reader_writer_lock@Concurrency@@QEAA@XZ @ stub -arch=win32 ??0scheduler_not_attached@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0scheduler_not_attached@Concurrency@@QEAA@PEBD@Z @ stub -arch=win32 ??0scheduler_not_attached@Concurrency@@QAE@XZ @@ -190,8 +190,8 @@ @ cdecl -arch=win64 ??1critical_section@Concurrency@@QEAA@XZ(ptr) msvcr120.??1critical_section@Concurrency@@QEAA@XZ @ stub -arch=i386 ??1event@Concurrency@@QAE@XZ @ stub -arch=win64 ??1event@Concurrency@@QEAA@XZ -@ stub -arch=i386 ??1reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ +@ thiscall -arch=win32 ??1reader_writer_lock@Concurrency@@QAE@XZ(ptr) msvcr120.??1reader_writer_lock@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ(ptr) msvcr120.??1reader_writer_lock@Concurrency@@QEAA@XZ @ thiscall -arch=i386 ??1scoped_lock@critical_section@Concurrency@@QAE@XZ(ptr) msvcr120.??1scoped_lock@critical_section@Concurrency@@QAE@XZ @ cdecl -arch=win64 ??1scoped_lock@critical_section@Concurrency@@QEAA@XZ(ptr) msvcr120.??1scoped_lock@critical_section@Concurrency@@QEAA@XZ @ stub -arch=i386 ??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ @@ -480,10 +480,10 @@ @ stub -arch=win64 ?is_current_task_group_canceling@Concurrency@@YA_NXZ @ thiscall -arch=i386 ?lock@critical_section@Concurrency@@QAEXXZ(ptr) msvcr120.?lock@critical_section@Concurrency@@QAEXXZ @ cdecl -arch=win64 ?lock@critical_section@Concurrency@@QEAAXXZ(ptr) msvcr120.?lock@critical_section@Concurrency@@QEAAXXZ -@ stub -arch=i386 ?lock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ -@ stub -arch=i386 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ +@ thiscall -arch=win32 ?lock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) msvcr120.?lock@reader_writer_lock@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) msvcr120.?lock@reader_writer_lock@Concurrency@@QEAAXXZ +@ thiscall -arch=win32 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ(ptr) msvcr120.?lock_read@reader_writer_lock@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) msvcr120.?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ @ thiscall -arch=i386 ?native_handle@critical_section@Concurrency@@QAEAAV12@XZ(ptr) msvcr120.?native_handle@critical_section@Concurrency@@QAEAAV12@XZ @ cdecl -arch=win64 ?native_handle@critical_section@Concurrency@@QEAAAEAV12@XZ(ptr) msvcr120.?native_handle@critical_section@Concurrency@@QEAAAEAV12@XZ @ thiscall -arch=i386 ?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ(ptr) msvcr120.?notify_all@_Condition_variable@details@Concurrency@@QAEXXZ @@ -506,16 +506,16 @@ @ stub -arch=win64 ?status_port@agent@Concurrency@@QEAAPEAV?$ISource@W4agent_status@Concurrency@@@2@XZ @ thiscall -arch=i386 ?try_lock@critical_section@Concurrency@@QAE_NXZ(ptr) msvcr120.?try_lock@critical_section@Concurrency@@QAE_NXZ @ cdecl -arch=win64 ?try_lock@critical_section@Concurrency@@QEAA_NXZ(ptr) msvcr120.?try_lock@critical_section@Concurrency@@QEAA_NXZ -@ stub -arch=i386 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ +@ thiscall -arch=win32 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) msvcr120.?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ +@ cdecl -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) msvcr120.?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ @ thiscall -arch=i386 ?try_lock_for@critical_section@Concurrency@@QAE_NI@Z(ptr long) msvcr120.?try_lock_for@critical_section@Concurrency@@QAE_NI@Z @ cdecl -arch=win64 ?try_lock_for@critical_section@Concurrency@@QEAA_NI@Z(ptr long) msvcr120.?try_lock_for@critical_section@Concurrency@@QEAA_NI@Z -@ stub -arch=i386 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ +@ thiscall -arch=win32 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) msvcr120.?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ +@ cdecl -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) msvcr120.?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ @ thiscall -arch=i386 ?unlock@critical_section@Concurrency@@QAEXXZ(ptr) msvcr120.?unlock@critical_section@Concurrency@@QAEXXZ @ cdecl -arch=win64 ?unlock@critical_section@Concurrency@@QEAAXXZ(ptr) msvcr120.?unlock@critical_section@Concurrency@@QEAAXXZ -@ stub -arch=i386 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ +@ thiscall -arch=win32 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) msvcr120.?unlock@reader_writer_lock@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) msvcr120.?unlock@reader_writer_lock@Concurrency@@QEAAXXZ @ stub -arch=win64 ?wait@Concurrency@@YAXI@Z @ thiscall -arch=i386 ?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z(ptr ptr) msvcr120.?wait@_Condition_variable@details@Concurrency@@QAEXAAVcritical_section@3@@Z @ cdecl -arch=win64 ?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z(ptr ptr) msvcr120.?wait@_Condition_variable@details@Concurrency@@QEAAXAEAVcritical_section@3@@Z diff --git a/dlls/msvcr100/msvcr100.spec b/dlls/msvcr100/msvcr100.spec index 84a5fa88cbf..258463dd755 100644 --- a/dlls/msvcr100/msvcr100.spec +++ b/dlls/msvcr100/msvcr100.spec @@ -134,8 +134,8 @@ @ stub -arch=win64 ??0operation_timed_out@Concurrency@@QEAA@PEBD@Z @ stub -arch=win32 ??0operation_timed_out@Concurrency@@QAE@XZ @ stub -arch=win64 ??0operation_timed_out@Concurrency@@QEAA@XZ -@ stub -arch=win32 ??0reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ +@ thiscall -arch=win32 ??0reader_writer_lock@Concurrency@@QAE@XZ(ptr) reader_writer_lock_ctor +@ cdecl -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ(ptr) reader_writer_lock_ctor @ stub -arch=win32 ??0scheduler_not_attached@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0scheduler_not_attached@Concurrency@@QEAA@PEBD@Z @ stub -arch=win32 ??0scheduler_not_attached@Concurrency@@QAE@XZ @@ -186,8 +186,8 @@ @ stub -arch=win64 ??1event@Concurrency@@QEAA@XZ @ thiscall -arch=i386 ??1exception@std@@UAE@XZ(ptr) MSVCRT_exception_dtor @ cdecl -arch=win64 ??1exception@std@@UEAA@XZ(ptr) MSVCRT_exception_dtor -@ stub -arch=win32 ??1reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ +@ thiscall -arch=win32 ??1reader_writer_lock@Concurrency@@QAE@XZ(ptr) reader_writer_lock_dtor +@ cdecl -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ(ptr) reader_writer_lock_dtor @ thiscall -arch=win32 ??1scoped_lock@critical_section@Concurrency@@QAE@XZ(ptr) critical_section_scoped_lock_dtor @ cdecl -arch=win64 ??1scoped_lock@critical_section@Concurrency@@QEAA@XZ(ptr) critical_section_scoped_lock_dtor @ stub -arch=win32 ??1scoped_lock@reader_writer_lock@Concurrency@@QAE@XZ @@ -461,10 +461,10 @@ @ stub -arch=win64 ?get_error_code@scheduler_resource_allocation_error@Concurrency@@QEBAJXZ @ thiscall -arch=win32 ?lock@critical_section@Concurrency@@QAEXXZ(ptr) critical_section_lock @ cdecl -arch=win64 ?lock@critical_section@Concurrency@@QEAAXXZ(ptr) critical_section_lock -@ stub -arch=win32 ?lock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ -@ stub -arch=win32 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ +@ thiscall -arch=win32 ?lock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_lock +@ cdecl -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_lock +@ thiscall -arch=win32 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_lock_read +@ cdecl -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_lock_read @ thiscall -arch=win32 ?name@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method @ cdecl -arch=win64 ?name@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method @ thiscall -arch=win32 ?native_handle@critical_section@Concurrency@@QAEAAV12@XZ(ptr) critical_section_native_handle @@ -486,15 +486,15 @@ @ cdecl ?terminate@@YAXXZ() MSVCRT_terminate @ thiscall -arch=win32 ?try_lock@critical_section@Concurrency@@QAE_NXZ(ptr) critical_section_try_lock @ cdecl -arch=win64 ?try_lock@critical_section@Concurrency@@QEAA_NXZ(ptr) critical_section_try_lock -@ stub -arch=win32 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ -@ stub -arch=win32 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ +@ thiscall -arch=win32 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) reader_writer_lock_try_lock +@ cdecl -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) reader_writer_lock_try_lock +@ thiscall -arch=win32 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) reader_writer_lock_try_lock_read +@ cdecl -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) reader_writer_lock_try_lock_read @ cdecl ?unexpected@@YAXXZ() MSVCRT_unexpected @ thiscall -arch=win32 ?unlock@critical_section@Concurrency@@QAEXXZ(ptr) critical_section_unlock @ cdecl -arch=win64 ?unlock@critical_section@Concurrency@@QEAAXXZ(ptr) critical_section_unlock -@ stub -arch=win32 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ +@ thiscall -arch=win32 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_unlock +@ cdecl -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_unlock @ cdecl ?vswprintf@@YAHPA_WIPB_WPAD@Z(ptr long wstr ptr) MSVCRT_vsnwprintf @ stub ?wait@Concurrency@@YAXI@Z @ stub -arch=win32 ?wait@event@Concurrency@@QAEII@Z diff --git a/dlls/msvcr110/msvcr110.spec b/dlls/msvcr110/msvcr110.spec index 39a2eef68e3..a95b39cabed 100644 --- a/dlls/msvcr110/msvcr110.spec +++ b/dlls/msvcr110/msvcr110.spec @@ -227,9 +227,9 @@ @ stub -arch=arm ??0operation_timed_out@Concurrency@@QAA@XZ @ stub -arch=i386 ??0operation_timed_out@Concurrency@@QAE@XZ @ stub -arch=win64 ??0operation_timed_out@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0reader_writer_lock@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0reader_writer_lock@Concurrency@@QAA@XZ(ptr) reader_writer_lock_ctor +@ thiscall -arch=win32 ??0reader_writer_lock@Concurrency@@QAE@XZ(ptr) reader_writer_lock_ctor +@ cdecl -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ(ptr) reader_writer_lock_ctor @ stub -arch=arm ??0scheduler_not_attached@Concurrency@@QAA@PBD@Z @ stub -arch=i386 ??0scheduler_not_attached@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0scheduler_not_attached@Concurrency@@QEAA@PEBD@Z @@ -320,9 +320,9 @@ @ cdecl -arch=arm ??1exception@std@@UAA@XZ(ptr) MSVCRT_exception_dtor @ thiscall -arch=i386 ??1exception@std@@UAE@XZ(ptr) MSVCRT_exception_dtor @ cdecl -arch=win64 ??1exception@std@@UEAA@XZ(ptr) MSVCRT_exception_dtor -@ stub -arch=arm ??1reader_writer_lock@Concurrency@@QAA@XZ -@ stub -arch=i386 ??1reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??1reader_writer_lock@Concurrency@@QAA@XZ(ptr) reader_writer_lock_dtor +@ thiscall -arch=win32 ??1reader_writer_lock@Concurrency@@QAE@XZ(ptr) reader_writer_lock_dtor +@ cdecl -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ(ptr) reader_writer_lock_dtor @ cdecl -arch=arm ??1scoped_lock@critical_section@Concurrency@@QAA@XZ(ptr) critical_section_scoped_lock_dtor @ thiscall -arch=i386 ??1scoped_lock@critical_section@Concurrency@@QAE@XZ(ptr) critical_section_scoped_lock_dtor @ cdecl -arch=win64 ??1scoped_lock@critical_section@Concurrency@@QEAA@XZ(ptr) critical_section_scoped_lock_dtor @@ -749,12 +749,12 @@ @ cdecl -arch=arm ?lock@critical_section@Concurrency@@QAAXXZ(ptr) critical_section_lock @ thiscall -arch=i386 ?lock@critical_section@Concurrency@@QAEXXZ(ptr) critical_section_lock @ cdecl -arch=win64 ?lock@critical_section@Concurrency@@QEAAXXZ(ptr) critical_section_lock -@ stub -arch=arm ?lock@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?lock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ -@ stub -arch=arm ?lock_read@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?lock@reader_writer_lock@Concurrency@@QAAXXZ(ptr) reader_writer_lock_lock +@ thiscall -arch=win32 ?lock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_lock +@ cdecl -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_lock +@ cdecl -arch=arm ?lock_read@reader_writer_lock@Concurrency@@QAAXXZ(ptr) reader_writer_lock_lock_read +@ thiscall -arch=win32 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_lock_read +@ cdecl -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_lock_read @ cdecl -arch=arm ?name@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method @ thiscall -arch=i386 ?name@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method @ cdecl -arch=win64 ?name@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method @@ -791,22 +791,22 @@ @ cdecl -arch=arm ?try_lock@critical_section@Concurrency@@QAA_NXZ(ptr) critical_section_try_lock @ thiscall -arch=i386 ?try_lock@critical_section@Concurrency@@QAE_NXZ(ptr) critical_section_try_lock @ cdecl -arch=win64 ?try_lock@critical_section@Concurrency@@QEAA_NXZ(ptr) critical_section_try_lock -@ stub -arch=arm ?try_lock@reader_writer_lock@Concurrency@@QAA_NXZ -@ stub -arch=i386 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ +@ cdecl -arch=arm ?try_lock@reader_writer_lock@Concurrency@@QAA_NXZ(ptr) reader_writer_lock_try_lock +@ thiscall -arch=win32 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) reader_writer_lock_try_lock +@ cdecl -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) reader_writer_lock_try_lock @ cdecl -arch=arm ?try_lock_for@critical_section@Concurrency@@QAA_NI@Z(ptr long) critical_section_try_lock_for @ thiscall -arch=i386 ?try_lock_for@critical_section@Concurrency@@QAE_NI@Z(ptr long) critical_section_try_lock_for @ cdecl -arch=win64 ?try_lock_for@critical_section@Concurrency@@QEAA_NI@Z(ptr long) critical_section_try_lock_for -@ stub -arch=arm ?try_lock_read@reader_writer_lock@Concurrency@@QAA_NXZ -@ stub -arch=i386 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ +@ cdecl -arch=arm ?try_lock_read@reader_writer_lock@Concurrency@@QAA_NXZ(ptr) reader_writer_lock_try_lock_read +@ thiscall -arch=win32 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) reader_writer_lock_try_lock_read +@ cdecl -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) reader_writer_lock_try_lock_read @ cdecl ?unexpected@@YAXXZ() MSVCRT_unexpected @ cdecl -arch=arm ?unlock@critical_section@Concurrency@@QAAXXZ(ptr) critical_section_unlock @ thiscall -arch=i386 ?unlock@critical_section@Concurrency@@QAEXXZ(ptr) critical_section_unlock @ cdecl -arch=win64 ?unlock@critical_section@Concurrency@@QEAAXXZ(ptr) critical_section_unlock -@ stub -arch=arm ?unlock@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?unlock@reader_writer_lock@Concurrency@@QAAXXZ(ptr) reader_writer_lock_unlock +@ thiscall -arch=win32 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_unlock +@ cdecl -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_unlock @ cdecl ?vswprintf@@YAHPA_WIPB_WPAD@Z(ptr long wstr ptr) MSVCRT_vsnwprintf @ stub ?wait@Concurrency@@YAXI@Z @ cdecl -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z(ptr ptr) _Condition_variable_wait diff --git a/dlls/msvcr120/msvcr120.spec b/dlls/msvcr120/msvcr120.spec index edd31e3cdbe..a6eb80d44a8 100644 --- a/dlls/msvcr120/msvcr120.spec +++ b/dlls/msvcr120/msvcr120.spec @@ -224,9 +224,9 @@ @ stub -arch=arm ??0operation_timed_out@Concurrency@@QAA@XZ @ stub -arch=i386 ??0operation_timed_out@Concurrency@@QAE@XZ @ stub -arch=win64 ??0operation_timed_out@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0reader_writer_lock@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0reader_writer_lock@Concurrency@@QAA@XZ(ptr) reader_writer_lock_ctor +@ thiscall -arch=win32 ??0reader_writer_lock@Concurrency@@QAE@XZ(ptr) reader_writer_lock_ctor +@ cdecl -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ(ptr) reader_writer_lock_ctor @ stub -arch=arm ??0scheduler_not_attached@Concurrency@@QAA@PBD@Z @ stub -arch=i386 ??0scheduler_not_attached@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0scheduler_not_attached@Concurrency@@QEAA@PEBD@Z @@ -316,9 +316,9 @@ @ cdecl -arch=arm ??1exception@std@@UAA@XZ(ptr) MSVCRT_exception_dtor @ thiscall -arch=i386 ??1exception@std@@UAE@XZ(ptr) MSVCRT_exception_dtor @ cdecl -arch=win64 ??1exception@std@@UEAA@XZ(ptr) MSVCRT_exception_dtor -@ stub -arch=arm ??1reader_writer_lock@Concurrency@@QAA@XZ -@ stub -arch=i386 ??1reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??1reader_writer_lock@Concurrency@@QAA@XZ(ptr) reader_writer_lock_dtor +@ thiscall -arch=win32 ??1reader_writer_lock@Concurrency@@QAE@XZ(ptr) reader_writer_lock_dtor +@ cdecl -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ(ptr) reader_writer_lock_dtor @ cdecl -arch=arm ??1scoped_lock@critical_section@Concurrency@@QAA@XZ(ptr) critical_section_scoped_lock_dtor @ thiscall -arch=i386 ??1scoped_lock@critical_section@Concurrency@@QAE@XZ(ptr) critical_section_scoped_lock_dtor @ cdecl -arch=win64 ??1scoped_lock@critical_section@Concurrency@@QEAA@XZ(ptr) critical_section_scoped_lock_dtor @@ -731,12 +731,12 @@ @ cdecl -arch=arm ?lock@critical_section@Concurrency@@QAAXXZ(ptr) critical_section_lock @ thiscall -arch=i386 ?lock@critical_section@Concurrency@@QAEXXZ(ptr) critical_section_lock @ cdecl -arch=win64 ?lock@critical_section@Concurrency@@QEAAXXZ(ptr) critical_section_lock -@ stub -arch=arm ?lock@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?lock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ -@ stub -arch=arm ?lock_read@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?lock@reader_writer_lock@Concurrency@@QAAXXZ(ptr) reader_writer_lock_lock +@ thiscall -arch=win32 ?lock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_lock +@ cdecl -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_lock +@ cdecl -arch=arm ?lock_read@reader_writer_lock@Concurrency@@QAAXXZ(ptr) reader_writer_lock_lock_read +@ thiscall -arch=win32 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_lock_read +@ cdecl -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_lock_read @ cdecl -arch=arm ?name@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method @ thiscall -arch=i386 ?name@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method @ cdecl -arch=win64 ?name@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) type_info_name_internal_method @@ -773,22 +773,22 @@ @ cdecl -arch=arm ?try_lock@critical_section@Concurrency@@QAA_NXZ(ptr) critical_section_try_lock @ thiscall -arch=i386 ?try_lock@critical_section@Concurrency@@QAE_NXZ(ptr) critical_section_try_lock @ cdecl -arch=win64 ?try_lock@critical_section@Concurrency@@QEAA_NXZ(ptr) critical_section_try_lock -@ stub -arch=arm ?try_lock@reader_writer_lock@Concurrency@@QAA_NXZ -@ stub -arch=i386 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ +@ cdecl -arch=arm ?try_lock@reader_writer_lock@Concurrency@@QAA_NXZ(ptr) reader_writer_lock_try_lock +@ thiscall -arch=win32 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) reader_writer_lock_try_lock +@ cdecl -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) reader_writer_lock_try_lock @ cdecl -arch=arm ?try_lock_for@critical_section@Concurrency@@QAA_NI@Z(ptr long) critical_section_try_lock_for @ thiscall -arch=i386 ?try_lock_for@critical_section@Concurrency@@QAE_NI@Z(ptr long) critical_section_try_lock_for @ cdecl -arch=win64 ?try_lock_for@critical_section@Concurrency@@QEAA_NI@Z(ptr long) critical_section_try_lock_for -@ stub -arch=arm ?try_lock_read@reader_writer_lock@Concurrency@@QAA_NXZ -@ stub -arch=i386 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ +@ cdecl -arch=arm ?try_lock_read@reader_writer_lock@Concurrency@@QAA_NXZ(ptr) reader_writer_lock_try_lock_read +@ thiscall -arch=win32 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) reader_writer_lock_try_lock_read +@ cdecl -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) reader_writer_lock_try_lock_read @ cdecl ?unexpected@@YAXXZ() MSVCRT_unexpected @ cdecl -arch=arm ?unlock@critical_section@Concurrency@@QAAXXZ(ptr) critical_section_unlock @ thiscall -arch=i386 ?unlock@critical_section@Concurrency@@QAEXXZ(ptr) critical_section_unlock @ cdecl -arch=win64 ?unlock@critical_section@Concurrency@@QEAAXXZ(ptr) critical_section_unlock -@ stub -arch=arm ?unlock@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?unlock@reader_writer_lock@Concurrency@@QAAXXZ(ptr) reader_writer_lock_unlock +@ thiscall -arch=win32 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) reader_writer_lock_unlock +@ cdecl -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) reader_writer_lock_unlock @ cdecl ?vswprintf@@YAHPA_WIPB_WPAD@Z(ptr long wstr ptr) MSVCRT_vsnwprintf @ stub ?wait@Concurrency@@YAXI@Z @ cdecl -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z(ptr ptr) _Condition_variable_wait diff --git a/dlls/msvcr120_app/msvcr120_app.spec b/dlls/msvcr120_app/msvcr120_app.spec index 3c1c343521a..15f42f06804 100644 --- a/dlls/msvcr120_app/msvcr120_app.spec +++ b/dlls/msvcr120_app/msvcr120_app.spec @@ -222,9 +222,9 @@ @ stub -arch=arm ??0operation_timed_out@Concurrency@@QAA@XZ @ stub -arch=i386 ??0operation_timed_out@Concurrency@@QAE@XZ @ stub -arch=win64 ??0operation_timed_out@Concurrency@@QEAA@XZ -@ stub -arch=arm ??0reader_writer_lock@Concurrency@@QAA@XZ -@ stub -arch=i386 ??0reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??0reader_writer_lock@Concurrency@@QAA@XZ(ptr) msvcr120.??0reader_writer_lock@Concurrency@@QAA@XZ +@ thiscall -arch=win32 ??0reader_writer_lock@Concurrency@@QAE@XZ(ptr) msvcr120.??0reader_writer_lock@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??0reader_writer_lock@Concurrency@@QEAA@XZ(ptr) msvcr120.??0reader_writer_lock@Concurrency@@QEAA@XZ @ stub -arch=arm ??0scheduler_not_attached@Concurrency@@QAA@PBD@Z @ stub -arch=i386 ??0scheduler_not_attached@Concurrency@@QAE@PBD@Z @ stub -arch=win64 ??0scheduler_not_attached@Concurrency@@QEAA@PEBD@Z @@ -313,9 +313,9 @@ @ cdecl -arch=arm ??1exception@std@@UAA@XZ(ptr) msvcr120.??1exception@std@@UAA@XZ @ thiscall -arch=i386 ??1exception@std@@UAE@XZ(ptr) msvcr120.??1exception@std@@UAE@XZ @ cdecl -arch=win64 ??1exception@std@@UEAA@XZ(ptr) msvcr120.??1exception@std@@UEAA@XZ -@ stub -arch=arm ??1reader_writer_lock@Concurrency@@QAA@XZ -@ stub -arch=i386 ??1reader_writer_lock@Concurrency@@QAE@XZ -@ stub -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ +@ cdecl -arch=arm ??1reader_writer_lock@Concurrency@@QAA@XZ(ptr) msvcr120.??1reader_writer_lock@Concurrency@@QAA@XZ +@ thiscall -arch=win32 ??1reader_writer_lock@Concurrency@@QAE@XZ(ptr) msvcr120.??1reader_writer_lock@Concurrency@@QAE@XZ +@ cdecl -arch=win64 ??1reader_writer_lock@Concurrency@@QEAA@XZ(ptr) msvcr120.??1reader_writer_lock@Concurrency@@QEAA@XZ @ cdecl -arch=arm ??1scoped_lock@critical_section@Concurrency@@QAA@XZ(ptr) msvcr120.??1scoped_lock@critical_section@Concurrency@@QAA@XZ @ thiscall -arch=i386 ??1scoped_lock@critical_section@Concurrency@@QAE@XZ(ptr) msvcr120.??1scoped_lock@critical_section@Concurrency@@QAE@XZ @ cdecl -arch=win64 ??1scoped_lock@critical_section@Concurrency@@QEAA@XZ(ptr) msvcr120.??1scoped_lock@critical_section@Concurrency@@QEAA@XZ @@ -727,12 +727,12 @@ @ cdecl -arch=arm ?lock@critical_section@Concurrency@@QAAXXZ(ptr) msvcr120.?lock@critical_section@Concurrency@@QAAXXZ @ thiscall -arch=i386 ?lock@critical_section@Concurrency@@QAEXXZ(ptr) msvcr120.?lock@critical_section@Concurrency@@QAEXXZ @ cdecl -arch=win64 ?lock@critical_section@Concurrency@@QEAAXXZ(ptr) msvcr120.?lock@critical_section@Concurrency@@QEAAXXZ -@ stub -arch=arm ?lock@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?lock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ -@ stub -arch=arm ?lock_read@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?lock@reader_writer_lock@Concurrency@@QAAXXZ(ptr) msvcr120.?lock@reader_writer_lock@Concurrency@@QAAXXZ +@ thiscall -arch=win32 ?lock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) msvcr120.?lock@reader_writer_lock@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?lock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) msvcr120.?lock@reader_writer_lock@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?lock_read@reader_writer_lock@Concurrency@@QAAXXZ(ptr) msvcr120.?lock_read@reader_writer_lock@Concurrency@@QAAXXZ +@ thiscall -arch=win32 ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ(ptr) msvcr120.?lock_read@reader_writer_lock@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) msvcr120.?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ @ cdecl -arch=arm ?name@type_info@@QBAPBDPAU__type_info_node@@@Z(ptr ptr) msvcr120.?name@type_info@@QBAPBDPAU__type_info_node@@@Z @ thiscall -arch=i386 ?name@type_info@@QBEPBDPAU__type_info_node@@@Z(ptr ptr) msvcr120.?name@type_info@@QBEPBDPAU__type_info_node@@@Z @ cdecl -arch=win64 ?name@type_info@@QEBAPEBDPEAU__type_info_node@@@Z(ptr ptr) msvcr120.?name@type_info@@QEBAPEBDPEAU__type_info_node@@@Z @@ -769,22 +769,22 @@ @ cdecl -arch=arm ?try_lock@critical_section@Concurrency@@QAA_NXZ(ptr) msvcr120.?try_lock@critical_section@Concurrency@@QAA_NXZ @ thiscall -arch=i386 ?try_lock@critical_section@Concurrency@@QAE_NXZ(ptr) msvcr120.?try_lock@critical_section@Concurrency@@QAE_NXZ @ cdecl -arch=win64 ?try_lock@critical_section@Concurrency@@QEAA_NXZ(ptr) msvcr120.?try_lock@critical_section@Concurrency@@QEAA_NXZ -@ stub -arch=arm ?try_lock@reader_writer_lock@Concurrency@@QAA_NXZ -@ stub -arch=i386 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ +@ cdecl -arch=arm ?try_lock@reader_writer_lock@Concurrency@@QAA_NXZ(ptr) msvcr120.?try_lock@reader_writer_lock@Concurrency@@QAA_NXZ +@ thiscall -arch=win32 ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) msvcr120.?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ +@ cdecl -arch=win64 ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) msvcr120.?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ @ cdecl -arch=arm ?try_lock_for@critical_section@Concurrency@@QAA_NI@Z(ptr long) msvcr120.?try_lock_for@critical_section@Concurrency@@QAA_NI@Z @ thiscall -arch=i386 ?try_lock_for@critical_section@Concurrency@@QAE_NI@Z(ptr long) msvcr120.?try_lock_for@critical_section@Concurrency@@QAE_NI@Z @ cdecl -arch=win64 ?try_lock_for@critical_section@Concurrency@@QEAA_NI@Z(ptr long) msvcr120.?try_lock_for@critical_section@Concurrency@@QEAA_NI@Z -@ stub -arch=arm ?try_lock_read@reader_writer_lock@Concurrency@@QAA_NXZ -@ stub -arch=i386 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ -@ stub -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ +@ cdecl -arch=arm ?try_lock_read@reader_writer_lock@Concurrency@@QAA_NXZ(ptr) msvcr120.?try_lock_read@reader_writer_lock@Concurrency@@QAA_NXZ +@ thiscall -arch=win32 ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ(ptr) msvcr120.?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ +@ cdecl -arch=win64 ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ(ptr) msvcr120.?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ @ cdecl ?unexpected@@YAXXZ() msvcr120.?unexpected@@YAXXZ @ cdecl -arch=arm ?unlock@critical_section@Concurrency@@QAAXXZ(ptr) msvcr120.?unlock@critical_section@Concurrency@@QAAXXZ @ thiscall -arch=i386 ?unlock@critical_section@Concurrency@@QAEXXZ(ptr) msvcr120.?unlock@critical_section@Concurrency@@QAEXXZ @ cdecl -arch=win64 ?unlock@critical_section@Concurrency@@QEAAXXZ(ptr) msvcr120.?unlock@critical_section@Concurrency@@QEAAXXZ -@ stub -arch=arm ?unlock@reader_writer_lock@Concurrency@@QAAXXZ -@ stub -arch=i386 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ -@ stub -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ +@ cdecl -arch=arm ?unlock@reader_writer_lock@Concurrency@@QAAXXZ(ptr) msvcr120.?unlock@reader_writer_lock@Concurrency@@QAAXXZ +@ thiscall -arch=win32 ?unlock@reader_writer_lock@Concurrency@@QAEXXZ(ptr) msvcr120.?unlock@reader_writer_lock@Concurrency@@QAEXXZ +@ cdecl -arch=win64 ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ(ptr) msvcr120.?unlock@reader_writer_lock@Concurrency@@QEAAXXZ @ cdecl ?vswprintf@@YAHPA_WIPB_WPAD@Z(ptr long wstr ptr) msvcr120.?vswprintf@@YAHPA_WIPB_WPAD@Z @ stub ?wait@Concurrency@@YAXI@Z @ cdecl -arch=arm ?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z(ptr ptr) msvcr120.?wait@_Condition_variable@details@Concurrency@@QAAXAAVcritical_section@3@@Z diff --git a/dlls/msvcrt/lock.c b/dlls/msvcrt/lock.c index 85f6727efe3..0aa1f1f4cf8 100644 --- a/dlls/msvcrt/lock.c +++ b/dlls/msvcrt/lock.c @@ -722,6 +722,85 @@ void __thiscall _Condition_variable_notify_all(_Condition_variable *this) } #endif +#if _MSVCR_VER >= 100 +typedef struct rwl_queue +{ + struct rwl_queue *next; +} rwl_queue; + +#define WRITER_WAITING 0x80000000 +/* FIXME: reader_writer_lock structure is not binary compatible + * it can't exceed 28/56 bytes */ +typedef struct +{ + LONG count; + LONG thread_id; + rwl_queue active; + rwl_queue *writer_head; + rwl_queue *writer_tail; + rwl_queue *reader_head; +} reader_writer_lock; + +/* ??0reader_writer_lock@Concurrency@@QAE@XZ */ +/* ??0reader_writer_lock@Concurrency@@QEAA@XZ */ +DEFINE_THISCALL_WRAPPER(reader_writer_lock_ctor, 4) +reader_writer_lock* __thiscall reader_writer_lock_ctor(reader_writer_lock *this) +{ + FIXME("(%p) stub\n", this); + return this; +} + +/* ??1reader_writer_lock@Concurrency@@QAE@XZ */ +/* ??1reader_writer_lock@Concurrency@@QEAA@XZ */ +DEFINE_THISCALL_WRAPPER(reader_writer_lock_dtor, 4) +void __thiscall reader_writer_lock_dtor(reader_writer_lock *this) +{ + FIXME("(%p) stub\n", this); +} + +/* ?lock@reader_writer_lock@Concurrency@@QAEXXZ */ +/* ?lock@reader_writer_lock@Concurrency@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(reader_writer_lock_lock, 4) +void __thiscall reader_writer_lock_lock(reader_writer_lock *this) +{ + FIXME("(%p) stub\n", this); +} + +/* ?lock_read@reader_writer_lock@Concurrency@@QAEXXZ */ +/* ?lock_read@reader_writer_lock@Concurrency@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(reader_writer_lock_lock_read, 4) +void __thiscall reader_writer_lock_lock_read(reader_writer_lock *this) +{ + FIXME("(%p) stub\n", this); +} + +/* ?try_lock@reader_writer_lock@Concurrency@@QAE_NXZ */ +/* ?try_lock@reader_writer_lock@Concurrency@@QEAA_NXZ */ +DEFINE_THISCALL_WRAPPER(reader_writer_lock_try_lock, 4) +MSVCRT_bool __thiscall reader_writer_lock_try_lock(reader_writer_lock *this) +{ + FIXME("(%p) stub\n", this); + return FALSE; +} + +/* ?try_lock_read@reader_writer_lock@Concurrency@@QAE_NXZ */ +/* ?try_lock_read@reader_writer_lock@Concurrency@@QEAA_NXZ */ +DEFINE_THISCALL_WRAPPER(reader_writer_lock_try_lock_read, 4) +MSVCRT_bool __thiscall reader_writer_lock_try_lock_read(reader_writer_lock *this) +{ + FIXME("(%p) stub\n", this); + return FALSE; +} + +/* ?unlock@reader_writer_lock@Concurrency@@QAEXXZ */ +/* ?unlock@reader_writer_lock@Concurrency@@QEAAXXZ */ +DEFINE_THISCALL_WRAPPER(reader_writer_lock_unlock, 4) +void __thiscall reader_writer_lock_unlock(reader_writer_lock *this) +{ + FIXME("(%p) stub\n", this); +} +#endif + /********************************************************************** * msvcrt_free_locks (internal) *