Verified Commit f48cb2c6 authored by Jakob Moser's avatar Jakob Moser
Browse files

Stop server in background thread

parent 8087c8fa
Loading
Loading
Loading
Loading
+8 −3
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ from collections.abc import Callable
from dataclasses import dataclass, field
from pathlib import Path
from socketserver import BaseServer, StreamRequestHandler, ThreadingUnixStreamServer
from threading import Thread

from poolpay.wire.Message import Message

@@ -64,6 +65,10 @@ class Server:
        self._server.serve_forever()

    def stop(self) -> None:
        # Shutdown must be run in another thread (per documentation), otherwise you get a deadlock
        def _stop() -> None:
            self._server.shutdown()
            self._server.server_close()
            self.socket_path.unlink()

        Thread(target=_stop).start()