diff options
Diffstat (limited to 'Python/pystate.c')
| -rw-r--r-- | Python/pystate.c | 8 | 
1 files changed, 6 insertions, 2 deletions
diff --git a/Python/pystate.c b/Python/pystate.c index 2ac2fd5..e214f50 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -212,6 +212,8 @@ new_threadstate(PyInterpreterState *interp, int init)          tstate->on_delete = NULL;          tstate->on_delete_data = NULL; +        tstate->coroutine_wrapper = NULL; +          if (init)              _PyThreadState_Init(tstate); @@ -372,6 +374,8 @@ PyThreadState_Clear(PyThreadState *tstate)      tstate->c_tracefunc = NULL;      Py_CLEAR(tstate->c_profileobj);      Py_CLEAR(tstate->c_traceobj); + +    Py_CLEAR(tstate->coroutine_wrapper);  } @@ -403,7 +407,7 @@ tstate_delete_common(PyThreadState *tstate)  void  PyThreadState_Delete(PyThreadState *tstate)  { -    if (tstate == _Py_atomic_load_relaxed(&_PyThreadState_Current)) +    if (tstate == (PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current))          Py_FatalError("PyThreadState_Delete: tstate is still current");  #ifdef WITH_THREAD      if (autoInterpreterState && PyThread_get_key_value(autoTLSkey) == tstate) @@ -662,7 +666,7 @@ PyThreadState_IsCurrent(PyThreadState *tstate)  {      /* Must be the tstate for this thread */      assert(PyGILState_GetThisThreadState()==tstate); -    return tstate == _Py_atomic_load_relaxed(&_PyThreadState_Current); +    return tstate == (PyThreadState*)_Py_atomic_load_relaxed(&_PyThreadState_Current);  }  /* Internal initialization/finalization functions called by  | 
