diff options
| -rw-r--r-- | src/Platform/Posix/Tss.c | 2 | ||||
| -rw-r--r-- | src/Platform/Win32/Condition.c | 8 | ||||
| -rw-r--r-- | src/Platform/Win32/Tss.c | 6 |
3 files changed, 9 insertions, 7 deletions
diff --git a/src/Platform/Posix/Tss.c b/src/Platform/Posix/Tss.c index ba04f2b..87a5006 100644 --- a/src/Platform/Posix/Tss.c +++ b/src/Platform/Posix/Tss.c @@ -56,7 +56,7 @@ static void **dataFetch(void) if (!result) abort(); - memset(result, 0, sizeof(sizeof(void *) * BH_MAX_TSS)); + memset(result, 0, sizeof(void *) * BH_MAX_TSS); if (pthread_setspecific(tssKey, result)) abort(); } diff --git a/src/Platform/Win32/Condition.c b/src/Platform/Win32/Condition.c index d4f9d99..c87c793 100644 --- a/src/Platform/Win32/Condition.c +++ b/src/Platform/Win32/Condition.c @@ -33,11 +33,13 @@ int BH_ConditionWaitFor(BH_Condition *condition, BH_Mutex *mutex, uint32_t timeout) { - switch (SleepConditionVariableCS(&condition->handle, &mutex->handle, timeout)) + if (SleepConditionVariableCS(&condition->handle, &mutex->handle, timeout)) + return BH_OK; + + switch (GetLastError()) { - case 0: return BH_ERROR; case ERROR_TIMEOUT: return BH_TIMEOUT; - default: return BH_OK; + default: return BH_ERROR; } } diff --git a/src/Platform/Win32/Tss.c b/src/Platform/Win32/Tss.c index 7249a12..5095dc6 100644 --- a/src/Platform/Win32/Tss.c +++ b/src/Platform/Win32/Tss.c @@ -21,7 +21,7 @@ static void __stdcall keyCleanup(void *data) /* Skip or remove TSS data */ if (!data) return; - else if (FlsSetValue(tssKey, NULL)) + else if (!FlsSetValue(tssKey, NULL)) abort(); /* Lock cleanup table and call cleanups */ @@ -58,8 +58,8 @@ static void **dataFetch(void) if (!result) abort(); - memset(result, 0, sizeof(sizeof(void *) * BH_MAX_TSS)); - if (FlsSetValue(tssKey, result)) + memset(result, 0, sizeof(void *) * BH_MAX_TSS); + if (!FlsSetValue(tssKey, result)) abort(); } |
