Kaynağa Gözat

avoid session close twice

wangweimin 5 yıl önce
ebeveyn
işleme
b631605538

+ 3 - 1
pywebio/session/coroutinebased.py

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

+ 3 - 1
pywebio/session/threadbased.py

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