Eina: eina_lock: fix eina_lock on Windows

SVN revision: 59395
This commit is contained in:
Vincent Torri 2011-05-15 10:55:07 +00:00
parent c3d5bfb5c5
commit d809170ea9
1 changed files with 4 additions and 6 deletions

View File

@ -63,7 +63,7 @@ static inline Eina_Lock_Result
eina_lock_take(Eina_Lock *mutex)
{
#ifdef EINA_HAVE_ON_OFF_THREADS
if (!_eina_threads_activated) return EINA_LOCK_FAIL;
if (!_eina_threads_activated) return EINA_LOCK_SUCCEED;
#endif
EnterCriticalSection(mutex);
@ -75,7 +75,7 @@ static inline Eina_Lock_Result
eina_lock_take_try(Eina_Lock *mutex)
{
#ifdef EINA_HAVE_ON_OFF_THREADS
if (!_eina_threads_activated) return EINA_LOCK_FAIL;
if (!_eina_threads_activated) return EINA_LOCK_SUCCEED;
#endif
return TryEnterCriticalSection(mutex) == 0 ? EINA_LOCK_FAIL : EINA_LOCK_SUCCEED;
@ -85,7 +85,7 @@ static inline Eina_Lock_Result
eina_lock_release(Eina_Lock *mutex)
{
#ifdef EINA_HAVE_ON_OFF_THREADS
if (!_eina_threads_activated) return EINA_LOCK_FAIL;
if (!_eina_threads_activated) return EINA_LOCK_SUCCEED;
#endif
LeaveCriticalSection(mutex);
@ -102,13 +102,12 @@ eina_lock_debug(const Eina_Lock *mutex)
static inline Eina_Bool
eina_condition_new(Eina_Condition *cond, Eina_Lock *mutex)
{
cond->mutex = *mutex;
#if _WIN32_WINNT >= 0x0600
InitializeCriticalSection(&cond->mutex);
InitializeConditionVariable(&cond->condition);
#else
cond->waiters_count = 0;
cond->was_broadcast = EINA_FALSE;
cond->mutex = *mutex;
cond->semaphore = CreateSemaphore(NULL, // no security
0, // initially 0
0x7fffffff, // max count
@ -140,7 +139,6 @@ eina_condition_free(Eina_Condition *cond)
DeleteCriticalSection(&cond->mutex);
#else
CloseHandle(cond->waiters_done);
DeleteCriticalSection(&cond->mutex);
DeleteCriticalSection(&cond->waiters_count_lock);
CloseHandle(cond->semaphore);
#endif