Explorar o código

avoid session close twice

wangweimin %!s(int64=5) %!d(string=hai) anos
pai
achega
b631605538
Modificáronse 2 ficheiros con 6 adicións e 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