Skip to content
This repository was archived by the owner on Jun 13, 2025. It is now read-only.
This repository was archived by the owner on Jun 13, 2025. It is now read-only.

Suggestion removing errors concerning process management #24

@BitFis

Description

@BitFis

While using cirque I ran into some warnings concerning process management:

/usr/lib/python3.8/subprocess.py:942: ResourceWarning: subprocess 28203 is still running
  _warn("subprocess %s is still running" % self.pid,
ResourceWarning: Enable tracemalloc to get the object allocation traceback
/usr/lib/python3.8/subprocess.py:942: ResourceWarning: subprocess 28202 is still running
  _warn("subprocess %s is still running" % self.pid,
ResourceWarning: Enable tracemalloc to get the object allocation traceback
cirque/connectivity/socatpipepair.py:48: ResourceWarning: unclosed file <_io.BufferedReader name=3>
  self.socat = None
ResourceWarning: Enable tracemalloc to get the object allocation traceback

Following changes would fix it. Feel free to use them as you feel fit:

diff --git a/cirque/connectivity/socatpipepair.py b/cirque/connectivity/socatpipepair.py
index 2b64149..c3c2c38 100644
--- a/cirque/connectivity/socatpipepair.py
+++ b/cirque/connectivity/socatpipepair.py
@@ -45,6 +45,8 @@ class SocatPipePair:
     def close(self):
         if self.socat is not None:
             self.socat.terminate()
+            self.socat.wait()
+            self.socat.stderr.close()
         self.socat = None

     def __del__(self):
diff --git a/cirque/connectivity/threadsimpipe.py b/cirque/connectivity/threadsimpipe.py
index 02de636..6ad360f 100644
--- a/cirque/connectivity/threadsimpipe.py
+++ b/cirque/connectivity/threadsimpipe.py
@@ -64,6 +64,7 @@ class ThreadSimPipe:
             self.radio_fd = None
         if self.radio_process is not None:
             self.radio_process.terminate()
+            self.radio_process.wait()
             self.radio_process = None
         if self._socat_pipe is not None:
             self._socat_pipe.close()

Thanks and regards

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions