Explorar el Código

avoid session close twice

wangweimin hace 5 años
padre
commit
b631605538
Se han modificado 2 ficheros con 6 adiciones y 2 borrados
  1. 3 1
      pywebio/session/coroutinebased.py
  2. 3 1
      pywebio/session/threadbased.py

+ 3 - 1
pywebio/session/coroutinebased.py

@@ -123,8 +123,10 @@ class CoroutineBasedSession(AbstractSession):
 
     def close(self):
         """关闭当前Session。由Backend调用"""
-        self._cleanup()
+        if self._closed:
+            return
         self._closed = True
+        self._cleanup()
         # todo clean
 
     def closed(self):

+ 3 - 1
pywebio/session/threadbased.py

@@ -158,8 +158,10 @@ class ThreadBasedSession(AbstractSession):
 
     def close(self):
         """关闭当前Session。由Backend调用"""
-        self._cleanup()
+        if self._closed:
+            return
         self._closed = True
+        self._cleanup()
 
     def closed(self):
         return self._closed