Piotr Caban : msvcr100: Add _NonReentrantPPLLock class implementation.

Alexandre Julliard julliard at winehq.org
Fri Feb 2 12:24:39 CST 2018


Module: wine
Branch: master
Commit: 8d105ac7c27428fe9f599711c7061e369f515d5e
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=8d105ac7c27428fe9f599711c7061e369f515d5e

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Fri Feb  2 16:36:22 2018 +0100

msvcr100: Add _NonReentrantPPLLock class implementation.

Signed-off-by: Piotr Caban <piotr at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/msvcrt/lock.c | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/dlls/msvcrt/lock.c b/dlls/msvcrt/lock.c
index 6bcd66a..03b9aee 100644
--- a/dlls/msvcrt/lock.c
+++ b/dlls/msvcrt/lock.c
@@ -549,7 +549,9 @@ typedef struct
 DEFINE_THISCALL_WRAPPER(_NonReentrantPPLLock_ctor, 4)
 _NonReentrantPPLLock* __thiscall _NonReentrantPPLLock_ctor(_NonReentrantPPLLock *this)
 {
-    FIXME("(%p) stub\n", this);
+    TRACE("(%p)\n", this);
+
+    critical_section_ctor(&this->cs);
     return this;
 }
 
@@ -558,7 +560,8 @@ _NonReentrantPPLLock* __thiscall _NonReentrantPPLLock_ctor(_NonReentrantPPLLock
 DEFINE_THISCALL_WRAPPER(_NonReentrantPPLLock__Acquire, 8)
 void __thiscall _NonReentrantPPLLock__Acquire(_NonReentrantPPLLock *this, cs_queue *q)
 {
-    FIXME("(%p %p) stub\n", this, q);
+    TRACE("(%p %p)\n", this, q);
+    cs_lock(&this->cs, q);
 }
 
 /* ?_Release at _NonReentrantPPLLock@details at Concurrency@@QAEXXZ */
@@ -566,7 +569,8 @@ void __thiscall _NonReentrantPPLLock__Acquire(_NonReentrantPPLLock *this, cs_que
 DEFINE_THISCALL_WRAPPER(_NonReentrantPPLLock__Release, 4)
 void __thiscall _NonReentrantPPLLock__Release(_NonReentrantPPLLock *this)
 {
-    FIXME("(%p) stub\n", this);
+    TRACE("(%p)\n", this);
+    critical_section_unlock(&this->cs);
 }
 
 /* ?_GetConcurrency at details@Concurrency@@YAIXZ */




More information about the wine-cvs mailing list