Piotr Caban : msvcp110: Add _Mtx_clear_owner implementation.
Alexandre Julliard
julliard at winehq.org
Tue Mar 15 17:57:50 CDT 2022
Module: wine
Branch: master
Commit: 90c0807a87f97afe95c0a75b252361622f8ec9f3
URL: https://source.winehq.org/git/wine.git/?a=commit;h=90c0807a87f97afe95c0a75b252361622f8ec9f3
Author: Piotr Caban <piotr at codeweavers.com>
Date: Tue Mar 15 14:36:41 2022 +0100
msvcp110: Add _Mtx_clear_owner implementation.
Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/msvcp110/msvcp110.spec | 2 +-
dlls/msvcp120/msvcp120.spec | 2 +-
dlls/msvcp120_app/msvcp120_app.spec | 2 +-
dlls/msvcp140/msvcp140.spec | 20 ++++++++++----------
dlls/msvcp90/misc.c | 7 +++++++
dlls/msvcp_win/msvcp_win.spec | 2 +-
6 files changed, 21 insertions(+), 14 deletions(-)
diff --git a/dlls/msvcp110/msvcp110.spec b/dlls/msvcp110/msvcp110.spec
index 514bc90b5e7..5eec1a003e0 100644
--- a/dlls/msvcp110/msvcp110.spec
+++ b/dlls/msvcp110/msvcp110.spec
@@ -3817,7 +3817,7 @@
@ extern _LZero
@ cdecl _Lock_shared_ptr_spin_lock()
@ cdecl _Mbrtowc(ptr ptr long ptr ptr)
-@ stub _Mtx_clear_owner
+@ cdecl _Mtx_clear_owner(ptr)
@ cdecl _Mtx_current_owns(ptr)
@ cdecl _Mtx_destroy(ptr)
@ cdecl _Mtx_getconcrtcs(ptr)
diff --git a/dlls/msvcp120/msvcp120.spec b/dlls/msvcp120/msvcp120.spec
index 6f868e190a9..18e13be46b8 100644
--- a/dlls/msvcp120/msvcp120.spec
+++ b/dlls/msvcp120/msvcp120.spec
@@ -3762,7 +3762,7 @@
@ extern _LZero
@ cdecl _Lock_shared_ptr_spin_lock()
@ cdecl _Mbrtowc(ptr ptr long ptr ptr)
-@ stub _Mtx_clear_owner
+@ cdecl _Mtx_clear_owner(ptr)
@ cdecl _Mtx_current_owns(ptr)
@ cdecl _Mtx_destroy(ptr)
@ cdecl _Mtx_getconcrtcs(ptr)
diff --git a/dlls/msvcp120_app/msvcp120_app.spec b/dlls/msvcp120_app/msvcp120_app.spec
index 0de36db8b36..72cdd258bd0 100644
--- a/dlls/msvcp120_app/msvcp120_app.spec
+++ b/dlls/msvcp120_app/msvcp120_app.spec
@@ -3762,7 +3762,7 @@
@ extern _LZero msvcp120._LZero
@ cdecl _Lock_shared_ptr_spin_lock() msvcp120._Lock_shared_ptr_spin_lock
@ cdecl _Mbrtowc(ptr ptr long ptr ptr) msvcp120._Mbrtowc
-@ stub _Mtx_clear_owner
+@ cdecl _Mtx_clear_owner(ptr) msvcp120._Mtx_clear_owner
@ cdecl _Mtx_current_owns(ptr) msvcp120._Mtx_current_owns
@ cdecl _Mtx_destroy(ptr) msvcp120._Mtx_destroy
@ cdecl _Mtx_getconcrtcs(ptr) msvcp120._Mtx_getconcrtcs
diff --git a/dlls/msvcp140/msvcp140.spec b/dlls/msvcp140/msvcp140.spec
index 3945a4bfbd4..05b5b0feac3 100644
--- a/dlls/msvcp140/msvcp140.spec
+++ b/dlls/msvcp140/msvcp140.spec
@@ -3672,18 +3672,18 @@
@ cdecl _Lstat(wstr ptr)
@ cdecl _Make_dir(wstr) tr2_sys__Make_dir_wchar
@ cdecl _Mbrtowc(ptr ptr long ptr ptr)
-@ stub _Mtx_clear_owner
-@ cdecl _Mtx_current_owns(ptr) _Mtx_current_owns
-@ cdecl _Mtx_destroy(ptr) _Mtx_destroy
-@ cdecl _Mtx_destroy_in_situ(ptr) _Mtx_destroy_in_situ
-@ cdecl _Mtx_getconcrtcs(ptr) _Mtx_getconcrtcs
-@ cdecl _Mtx_init(ptr long) _Mtx_init
-@ cdecl _Mtx_init_in_situ(ptr long) _Mtx_init_in_situ
-@ cdecl _Mtx_lock(ptr) _Mtx_lock
+@ cdecl _Mtx_clear_owner(ptr)
+@ cdecl _Mtx_current_owns(ptr)
+@ cdecl _Mtx_destroy(ptr)
+@ cdecl _Mtx_destroy_in_situ(ptr)
+@ cdecl _Mtx_getconcrtcs(ptr)
+@ cdecl _Mtx_init(ptr long)
+@ cdecl _Mtx_init_in_situ(ptr long)
+@ cdecl _Mtx_lock(ptr)
@ stub _Mtx_reset_owner
@ stub _Mtx_timedlock
-@ cdecl _Mtx_trylock(ptr) _Mtx_trylock
-@ cdecl _Mtx_unlock(ptr) _Mtx_unlock
+@ cdecl _Mtx_trylock(ptr)
+@ cdecl _Mtx_unlock(ptr)
@ stub _Mtxdst
@ stub _Mtxinit
@ stub _Mtxlock
diff --git a/dlls/msvcp90/misc.c b/dlls/msvcp90/misc.c
index 0ed75e233d8..ef1f292f37e 100644
--- a/dlls/msvcp90/misc.c
+++ b/dlls/msvcp90/misc.c
@@ -807,6 +807,13 @@ critical_section* __cdecl _Mtx_getconcrtcs(_Mtx_arg_t mtx)
return &MTX_T_FROM_ARG(mtx)->cs;
}
+void __cdecl _Mtx_clear_owner(_Mtx_arg_t mtx)
+{
+ _Mtx_t m = MTX_T_FROM_ARG(mtx);
+ m->thread_id = -1;
+ m->count--;
+}
+
static inline LONG interlocked_dec_if_nonzero( LONG *dest )
{
LONG val, tmp;
diff --git a/dlls/msvcp_win/msvcp_win.spec b/dlls/msvcp_win/msvcp_win.spec
index c6ca765f158..fb6fd5cd1c2 100644
--- a/dlls/msvcp_win/msvcp_win.spec
+++ b/dlls/msvcp_win/msvcp_win.spec
@@ -3672,7 +3672,7 @@
@ cdecl _Lstat(wstr ptr) msvcp140._Lstat
@ cdecl _Make_dir(wstr) msvcp140._Make_dir
@ cdecl _Mbrtowc(ptr ptr long ptr ptr) msvcp140._Mbrtowc
-@ stub _Mtx_clear_owner
+@ cdecl _Mtx_clear_owner(ptr) msvcp140._Mtx_clear_owner
@ cdecl _Mtx_current_owns(ptr) msvcp140._Mtx_current_owns
@ cdecl _Mtx_destroy(ptr) msvcp140._Mtx_destroy
@ cdecl _Mtx_destroy_in_situ(ptr) msvcp140._Mtx_destroy_in_situ
More information about the wine-cvs
mailing list