diff options
author | Benjamin Peterson <benjamin@python.org> | 2015-05-25 21:24:48 -0500 |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2015-05-25 21:24:48 -0500 |
commit | 2ac1cd05153c0815ec6a5ad5ed08860758c6ee20 (patch) | |
tree | 3da50b196fbaa902881864783df9d54d63da0951 /Python/thread_nt.h | |
parent | 4d7a8e298cb5786fd08b044974c42856b2ddfa2d (diff) | |
parent | 05f5572e8d38267d23e4417ccf6f440f3f781836 (diff) | |
download | cpython-2ac1cd05153c0815ec6a5ad5ed08860758c6ee20.tar.gz |
merge 3.3
Diffstat (limited to 'Python/thread_nt.h')
-rw-r--r-- | Python/thread_nt.h | 19 |
1 files changed, 5 insertions, 14 deletions
diff --git a/Python/thread_nt.h b/Python/thread_nt.h index b157fc54a9..84452cdac4 100644 --- a/Python/thread_nt.h +++ b/Python/thread_nt.h @@ -34,7 +34,7 @@ typedef NRMUTEX *PNRMUTEX; PNRMUTEX AllocNonRecursiveMutex() { - PNRMUTEX m = (PNRMUTEX)malloc(sizeof(NRMUTEX)); + PNRMUTEX m = (PNRMUTEX)PyMem_RawMalloc(sizeof(NRMUTEX)); if (!m) return NULL; if (PyCOND_INIT(&m->cv)) @@ -46,7 +46,7 @@ AllocNonRecursiveMutex() m->locked = 0; return m; fail: - free(m); + PyMem_RawFree(m); return NULL; } @@ -56,7 +56,7 @@ FreeNonRecursiveMutex(PNRMUTEX mutex) if (mutex) { PyCOND_FINI(&mutex->cv); PyMUTEX_FINI(&mutex->cs); - free(mutex); + PyMem_RawFree(mutex); } } @@ -107,7 +107,7 @@ LeaveNonRecursiveMutex(PNRMUTEX mutex) result = PyCOND_SIGNAL(&mutex->cv); result &= PyMUTEX_UNLOCK(&mutex->cs); return result; -} +} #else /* if ! _PY_USE_CV_LOCKS */ @@ -130,7 +130,7 @@ FreeNonRecursiveMutex(PNRMUTEX mutex) DWORD EnterNonRecursiveMutex(PNRMUTEX mutex, DWORD milliseconds) { - return WaitForSingleObject(mutex, milliseconds); + return WaitForSingleObjectEx(mutex, milliseconds, FALSE); } BOOL @@ -389,20 +389,11 @@ 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; |