msvcp110: Add _Mtx_clear_owner implementation.

Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Piotr Caban 2022-03-15 14:36:41 +01:00 committed by Alexandre Julliard
parent bd0d5dea13
commit 90c0807a87
6 changed files with 21 additions and 14 deletions

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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;

View file

@ -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