aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Platform/Posix/Tss.c2
-rw-r--r--src/Platform/Win32/Condition.c8
-rw-r--r--src/Platform/Win32/Tss.c6
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();
}