change mp spawn method

mp.Queue is not pickle-able, which prevents spawn method from working,
but is necessary for CUDA to work properly
This commit is contained in:
Christos Falas 2024-12-31 17:49:51 +00:00
parent c52826c528
commit 1a80fba07f
No known key found for this signature in database

View File

@ -33,7 +33,7 @@ class FeitTransmitter:
class FeitReceiver: class FeitReceiver:
def __init__(self, host: Host): def __init__(self, host: Host, processing_queue: "mp.Queue[CSI]"):
self.host = host self.host = host
self.server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) self.server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
self.server.connect(host) self.server.connect(host)
@ -48,8 +48,9 @@ class FeitReceiver:
self.logger = logging.getLogger( self.logger = logging.getLogger(
f"{__name__}.{self.__class__.__name__}-{self.host}" f"{__name__}.{self.__class__.__name__}-{self.host}"
) )
self.processing_queue = processing_queue
def listen(self, queue: "mp.Queue[CSI]"): def listen(self):
prev_time = datetime.now() prev_time = datetime.now()
while True: while True:
# This is the max size of a UDP packet. The size of the actual CSI # This is the max size of a UDP packet. The size of the actual CSI
@ -62,7 +63,7 @@ class FeitReceiver:
f"Received CSI data after {datetime.now() - prev_time}" f"Received CSI data after {datetime.now() - prev_time}"
) )
prev_time = datetime.now() prev_time = datetime.now()
queue.put(csidata) self.processing_queue.put(csidata)
except struct.error: except struct.error:
self.logger.error("Failed to parse CSI data") self.logger.error("Failed to parse CSI data")