From e1817a7232d7c4bb1320fb7c0af4321b06d406a0 Mon Sep 17 00:00:00 2001 From: caro Date: Wed, 22 Feb 2012 08:34:38 +0000 Subject: [PATCH] Eina: fix win32 RWlocks * initialize all the mutex members in eina_rwlock_new() * fix assigments in eina_rwlock_take_read() and eina_rwlock_take_write() git-svn-id: http://svn.enlightenment.org/svn/e/trunk/eina@68248 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/include/eina_inline_lock_win32.x | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/include/eina_inline_lock_win32.x b/src/include/eina_inline_lock_win32.x index 86980ab..1988724 100644 --- a/src/include/eina_inline_lock_win32.x +++ b/src/include/eina_inline_lock_win32.x @@ -334,6 +334,11 @@ eina_rwlock_new(Eina_RWLock *mutex) if (!eina_condition_new(&(mutex->cond_write), &(mutex->mutex))) goto on_error2; + mutex->readers_count = 0; + mutex->writers_count = 0; + mutex->readers = 0; + mutex->writers = 0; + return EINA_TRUE; on_error2: @@ -363,7 +368,7 @@ eina_rwlock_take_read(Eina_RWLock *mutex) AcquireSRWLockShared(&mutex->mutex); mutex->is_read_mode = EINA_TRUE; #else - DWORD res; + DWORD res = 0; if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL) return EINA_LOCK_FAIL; @@ -396,7 +401,7 @@ eina_rwlock_take_write(Eina_RWLock *mutex) AcquireSRWLockExclusive(&mutex->mutex); mutex->is_read_mode = EINA_FALSE; #else - DWORD res; + DWORD res = 0; if (eina_lock_take(&(mutex->mutex)) == EINA_LOCK_FAIL) return EINA_LOCK_FAIL; @@ -414,7 +419,7 @@ eina_rwlock_take_write(Eina_RWLock *mutex) } mutex->writers_count--; } - if (res == 0) mutex->writers_count = 1; + if (res == 0) mutex->writers = 1; eina_lock_release(&(mutex->mutex)); #endif -- 2.7.4