mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	Merged revisions 84623 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/branches/py3k ........ r84623 | antoine.pitrou | 2010-09-08 14:37:10 +0200 (mer., 08 sept. 2010) | 4 lines Issue #9797: pystate.c wrongly assumed that zero couldn't be a valid thread-local storage key. ........
This commit is contained in:
		
							parent
							
								
									b58c3c7e2f
								
							
						
					
					
						commit
						3c6261a90b
					
				
					 2 changed files with 10 additions and 8 deletions
				
			
		|  | @ -338,7 +338,7 @@ PyThreadState_Delete(PyThreadState *tstate) | |||
|         Py_FatalError("PyThreadState_Delete: tstate is still current"); | ||||
|     tstate_delete_common(tstate); | ||||
| #ifdef WITH_THREAD | ||||
|     if (autoTLSkey && PyThread_get_key_value(autoTLSkey) == tstate) | ||||
|     if (autoInterpreterState && PyThread_get_key_value(autoTLSkey) == tstate) | ||||
|         PyThread_delete_key_value(autoTLSkey); | ||||
| #endif /* WITH_THREAD */ | ||||
| } | ||||
|  | @ -354,7 +354,7 @@ PyThreadState_DeleteCurrent() | |||
|             "PyThreadState_DeleteCurrent: no current tstate"); | ||||
|     _PyThreadState_Current = NULL; | ||||
|     tstate_delete_common(tstate); | ||||
|     if (autoTLSkey && PyThread_get_key_value(autoTLSkey) == tstate) | ||||
|     if (autoInterpreterState && PyThread_get_key_value(autoTLSkey) == tstate) | ||||
|         PyThread_delete_key_value(autoTLSkey); | ||||
|     PyEval_ReleaseLock(); | ||||
| } | ||||
|  | @ -574,7 +574,6 @@ void | |||
| _PyGILState_Fini(void) | ||||
| { | ||||
|     PyThread_delete_key(autoTLSkey); | ||||
|     autoTLSkey = 0; | ||||
|     autoInterpreterState = NULL; | ||||
| } | ||||
| 
 | ||||
|  | @ -586,10 +585,10 @@ _PyGILState_Fini(void) | |||
| static void | ||||
| _PyGILState_NoteThreadState(PyThreadState* tstate) | ||||
| { | ||||
|     /* If autoTLSkey is 0, this must be the very first threadstate created
 | ||||
|        in Py_Initialize().  Don't do anything for now (we'll be back here | ||||
|        when _PyGILState_Init is called). */ | ||||
|     if (!autoTLSkey) | ||||
|     /* If autoTLSkey isn't initialized, this must be the very first
 | ||||
|        threadstate created in Py_Initialize().  Don't do anything for now | ||||
|        (we'll be back here when _PyGILState_Init is called). */ | ||||
|     if (!autoInterpreterState) | ||||
|         return; | ||||
| 
 | ||||
|     /* Stick the thread state for this thread in thread local storage.
 | ||||
|  | @ -617,7 +616,7 @@ _PyGILState_NoteThreadState(PyThreadState* tstate) | |||
| PyThreadState * | ||||
| PyGILState_GetThisThreadState(void) | ||||
| { | ||||
|     if (autoInterpreterState == NULL || autoTLSkey == 0) | ||||
|     if (autoInterpreterState == NULL) | ||||
|         return NULL; | ||||
|     return (PyThreadState *)PyThread_get_key_value(autoTLSkey); | ||||
| } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Antoine Pitrou
						Antoine Pitrou