From 7f9c0373aacaf59f30aa9f275dcace505c8d5d89 Mon Sep 17 00:00:00 2001 From: simonmar Date: Thu, 27 Oct 2005 08:00:03 +0000 Subject: [PATCH] [project @ 2005-10-27 08:00:03 by simonmar] Fix getThreadLocalVar() on Win32 - thanks for Krasimir for finding the bug. --- ghc/rts/win32/OSThreads.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/ghc/rts/win32/OSThreads.c b/ghc/rts/win32/OSThreads.c index e4cd76b..5559765 100644 --- a/ghc/rts/win32/OSThreads.c +++ b/ghc/rts/win32/OSThreads.c @@ -137,9 +137,13 @@ getThreadLocalVar (ThreadLocalKey *key) { void *r; r = TlsGetValue(*key); - if (r == NULL) { +#ifdef DEBUG + // r is allowed to be NULL - it can mean that either there was an + // error or the stored value is in fact NULL. + if (GetLastError() != NO_ERROR) { barf("getThreadLocalVar: key not found"); } +#endif return r; } -- 1.7.10.4