diff --git a/main.py b/main.py index 43dbecd..56c492c 100644 --- a/main.py +++ b/main.py @@ -23,4 +23,7 @@ if __name__ == '__main__': signal.signal(signal.SIGTERM, terminate) signal.signal(signal.SIGINT, terminate) output_manager.start_loop() - proxy_manager.join() + try: + proxy_manager.join() + finally: + terminate() diff --git a/output/manager.py b/output/manager.py index 40a5c4c..367dfd0 100644 --- a/output/manager.py +++ b/output/manager.py @@ -3,19 +3,19 @@ import threading from typing import TYPE_CHECKING from config.helper import config -from messages.fansclub import FansclubMessage -from proxy.queues import MESSAGE_QUEUE from messages.chat import ChatMessage from messages.control import ControlMessage +from messages.fansclub import FansclubMessage from messages.gift import GiftMessage from messages.like import LikeMessage from messages.member import MemberMessage from messages.roomuserseq import RoomUserSeqMessage from messages.social import SocialMessage +from output.debug import DebugWriter from output.print import Print from output.xml import XMLWriter -from output.debug import DebugWriter from protobuf import message_pb2, wss_pb2 +from proxy.queues import MESSAGE_QUEUE if TYPE_CHECKING: from typing import Type, Optional, List @@ -122,7 +122,7 @@ class OutputManager(): self.decode_payload(message) def terminate(self): - if self._should_exit: + if not self._should_exit.is_set(): self._should_exit.set() MESSAGE_QUEUE.put(None)