Fix issue with notification queue that prevented to properly close projects. Fix #1493

This commit is contained in:
grossmj
2019-01-12 16:02:36 +07:00
parent 161c05a310
commit a896346c77
4 changed files with 34 additions and 29 deletions

View File

@ -17,7 +17,6 @@
import os
import aiohttp
import asyncio
from contextlib import contextmanager
from ..notification_queue import NotificationQueue
@ -43,8 +42,10 @@ class Notification:
queue = NotificationQueue()
self._project_listeners.setdefault(project.id, set())
self._project_listeners[project.id].add(queue)
yield queue
self._project_listeners[project.id].remove(queue)
try:
yield queue
finally:
self._project_listeners[project.id].remove(queue)
@contextmanager
def controller_queue(self):
@ -55,8 +56,10 @@ class Notification:
"""
queue = NotificationQueue()
self._controller_listeners.append(queue)
yield queue
self._controller_listeners.remove(queue)
try:
yield queue
finally:
self._controller_listeners.remove(queue)
def controller_emit(self, action, event):
"""