diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2013-12-13 03:14:41 (GMT) |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2013-12-13 03:14:41 (GMT) |
commit | 441adb8c5782de6fcf71ee3396d114c48cd1cb5b (patch) | |
tree | bdfac5137aa3cb90da5df29bd6bfd8345acd3adb /Python/thread_nt.h | |
parent | 775632ba107fb37dfe2d38a39e129f1daad070cf (diff) | |
download | cpython-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.h | 9 |
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; |