summaryrefslogtreecommitdiffstats
path: root/Python/thread_nt.h
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2013-12-13 03:14:41 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2013-12-13 03:14:41 (GMT)
commit441adb8c5782de6fcf71ee3396d114c48cd1cb5b (patch)
treebdfac5137aa3cb90da5df29bd6bfd8345acd3adb /Python/thread_nt.h
parent775632ba107fb37dfe2d38a39e129f1daad070cf (diff)
downloadcpython-441adb8c5782de6fcf71ee3396d114c48cd1cb5b.zip
cpython-441adb8c5782de6fcf71ee3396d114c48cd1cb5b.tar.gz
cpython-441adb8c5782de6fcf71ee3396d114c48cd1cb5b.tar.bz2
Backout changeset 46393019b650
test_capi is failing and the fix is not trivial, I prefer to revert
Diffstat (limited to 'Python/thread_nt.h')
-rw-r--r--Python/thread_nt.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/Python/thread_nt.h b/Python/thread_nt.h
index ee2079f..ab5a081 100644
--- a/Python/thread_nt.h
+++ b/Python/thread_nt.h
@@ -389,11 +389,20 @@ PyThread_delete_key(int key)
TlsFree(key);
}
+/* We must be careful to emulate the strange semantics implemented in thread.c,
+ * where the value is only set if it hasn't been set before.
+ */
int
PyThread_set_key_value(int key, void *value)
{
BOOL ok;
+ void *oldvalue;
+ assert(value != NULL);
+ oldvalue = TlsGetValue(key);
+ if (oldvalue != NULL)
+ /* ignore value if already set */
+ return 0;
ok = TlsSetValue(key, value);
if (!ok)
return -1;