Browse Source

event: Clear exception flag after trying asyncio exception import

rdb 4 years ago
parent
commit
068ceaaf58
1 changed files with 6 additions and 0 deletions
  1. 6 0
      panda/src/event/asyncFuture_ext.cxx

+ 6 - 0
panda/src/event/asyncFuture_ext.cxx

@@ -125,6 +125,9 @@ static PyObject *get_done_result(const AsyncFuture *future) {
         exc_type = PyObject_GetAttrString(module, "CancelledError");
         Py_DECREF(module);
       }
+      else {
+        PyErr_Clear();
+      }
       // If we can't get that, we should pretend and make our own.
       if (exc_type == nullptr) {
         exc_type = PyErr_NewExceptionWithDoc((char*)"concurrent.futures._base.CancelledError",
@@ -218,6 +221,9 @@ result(PyObject *timeout) const {
           exc_type = PyObject_GetAttrString(module, "TimeoutError");
           Py_DECREF(module);
         }
+        else {
+          PyErr_Clear();
+        }
         // If we can't get that, we should pretend and make our own.
         if (exc_type == nullptr) {
           exc_type = PyErr_NewExceptionWithDoc((char*)"concurrent.futures._base.TimeoutError",