Eina: fix win32 RWlocks
authorcaro <caro>
Wed, 22 Feb 2012 08:34:38 +0000 (08:34 +0000)
committercaro <caro@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Wed, 22 Feb 2012 08:34:38 +0000 (08:34 +0000)
* 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

index 86980ab..1988724 100644 (file)
@@ -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