2024-06-30 21:04:22 +02:00
|
|
|
#!/usr/bin/env python3
|
|
|
|
|
2024-07-01 19:36:50 +02:00
|
|
|
import asyncio
|
|
|
|
import threading
|
|
|
|
import logging
|
2024-06-30 21:04:22 +02:00
|
|
|
|
2024-07-01 19:36:50 +02:00
|
|
|
from src.mempool import WebSocketThread, QueueProcessor
|
|
|
|
from src.db import Handler
|
2024-06-30 21:04:22 +02:00
|
|
|
|
|
|
|
|
2024-07-01 19:36:50 +02:00
|
|
|
def main():
|
|
|
|
# FIFO queue for cross-thread communications
|
|
|
|
q = asyncio.Queue()
|
|
|
|
shutdown_event = threading.Event()
|
|
|
|
handler = Handler()
|
2024-06-30 21:04:22 +02:00
|
|
|
|
2024-07-01 19:36:50 +02:00
|
|
|
ws_thread = WebSocketThread(q, shutdown_event)
|
|
|
|
qp_thread = QueueProcessor(q, shutdown_event, handler)
|
|
|
|
|
|
|
|
ws_thread.start()
|
|
|
|
qp_thread.start()
|
|
|
|
|
|
|
|
try:
|
|
|
|
ws_thread.join()
|
|
|
|
qp_thread.join()
|
|
|
|
except KeyboardInterrupt:
|
|
|
|
logging.info("Keyboard interrupt received, shutting down threads.")
|
|
|
|
shutdown_event.set()
|
|
|
|
ws_thread.join()
|
|
|
|
qp_thread.join()
|
2024-06-30 21:04:22 +02:00
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2024-07-01 19:36:50 +02:00
|
|
|
main()
|