Fix issue with asyncio.Queue which is not thread safe.

This commit is contained in:
grossmj committed 2024-11-17 14:39:22 +10:00
1 parent e83e12b51a
commit 31a2cb998d
2 files changed
+8 -6

No files matched your search

+3 -2
View File
@@ -15,7 +15,7 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import asyncio
from contextlib import contextmanager
from gns3server.utils.notification_queue import NotificationQueue
@@ -28,6 +28,7 @@ class NotificationManager:
def __init__(self):
self._listeners = set()
self._loop = asyncio.get_event_loop()
@contextmanager
def queue(self):
@@ -54,7 +55,7 @@ class NotificationManager:
"""
for listener in self._listeners:
listener.put_nowait((action, event, kwargs))
self._loop.call_soon_threadsafe(listener.put_nowait, (action, event, kwargs))
@staticmethod
def reset():