diff --git a/csdr/csdr.py b/csdr/csdr.py index ccd9776..dbfc5b5 100644 --- a/csdr/csdr.py +++ b/csdr/csdr.py @@ -45,7 +45,7 @@ class output(object): if not self.supports_type(t): # TODO rewrite the output mechanism in a way that avoids producing unnecessary data logger.warning("dumping output of type %s since it is not supported.", t) - threading.Thread(target=self.pump(read_fn, lambda x: None)).start() + threading.Thread(target=self.pump(read_fn, lambda x: None), name="csdr_pump_thread").start() return self.receive_output(t, read_fn) @@ -773,7 +773,7 @@ class dsp(object): logger.debug("restarting since rc = 0, self.running = true, and no modification") self.restart() - threading.Thread(target=watch_thread).start() + threading.Thread(target=watch_thread, name="csdr_watch_thread").start() audio_type = "hd_audio" if self.isHdAudio() else "audio" if self.output.supports_type(audio_type): diff --git a/csdr/pipe.py b/csdr/pipe.py index bbf9a67..f915aef 100644 --- a/csdr/pipe.py +++ b/csdr/pipe.py @@ -110,7 +110,7 @@ class WritingPipe(Pipe): This sends the opening operation off to a background thread. If we were to block the thread here, another pipe may be waiting in the queue to be opened on the opposing side, resulting in a deadlock """ - threading.Thread(target=self.open_and_dequeue).start() + threading.Thread(target=self.open_and_dequeue, name="csdr_pipe_thread").start() def write(self, data): """ diff --git a/owrx/connection.py b/owrx/connection.py index ceef8c5..7bfd805 100644 --- a/owrx/connection.py +++ b/owrx/connection.py @@ -48,7 +48,7 @@ class Client(ABC): # unset the queue object to free shared memory file descriptors self.multithreadingQueue = None - threading.Thread(target=mp_passthru).start() + threading.Thread(target=mp_passthru, name="connection_mp_passthru").start() def send(self, data): try: diff --git a/owrx/dsp.py b/owrx/dsp.py index 4343564..eabe244 100644 --- a/owrx/dsp.py +++ b/owrx/dsp.py @@ -158,7 +158,7 @@ class DspManager(csdr.output): write = writers[t] - threading.Thread(target=self.pump(read_fn, write)).start() + threading.Thread(target=self.pump(read_fn, write), name="dsp_pump_{}".format(t)).start() def stop(self): self.dsp.stop() diff --git a/owrx/map.py b/owrx/map.py index 779696b..8c95ea5 100644 --- a/owrx/map.py +++ b/owrx/map.py @@ -49,7 +49,7 @@ class Map(object): loops = 0 time.sleep(60) - threading.Thread(target=removeLoop, daemon=True).start() + threading.Thread(target=removeLoop, daemon=True, name="map_removeloop").start() super().__init__() def broadcast(self, update): diff --git a/owrx/service/__init__.py b/owrx/service/__init__.py index 96a3ff1..a8e60d8 100644 --- a/owrx/service/__init__.py +++ b/owrx/service/__init__.py @@ -32,7 +32,7 @@ class ServiceOutput(output, metaclass=ABCMeta): parser = self.getParser() parser.setDialFrequency(self.frequency) target = self.pump(read_fn, parser.parse) - threading.Thread(target=target).start() + threading.Thread(target=target, name="service_output_receive").start() class WsjtServiceOutput(ServiceOutput): diff --git a/owrx/source/__init__.py b/owrx/source/__init__.py index a55f0ee..8720882 100644 --- a/owrx/source/__init__.py +++ b/owrx/source/__init__.py @@ -171,7 +171,7 @@ class SdrSource(ABC): logger.debug("shut down with RC={0}".format(rc)) self.monitor = None - self.monitor = threading.Thread(target=wait_for_process_to_end) + self.monitor = threading.Thread(target=wait_for_process_to_end, name="source_monitor") self.monitor.start() retries = 1000