Fix process leak

You are killing a subprocess without check never the result status, so you are leaking zombie processes:

```
osmc@osmc:~$ ps aux | grep http
osmc     19187  0.0  0.0      0     0 ?        ZN   22:35   0:00 [torrent2http] <defunct>
osmc     19205  0.0  0.0      0     0 ?        ZN   22:35   0:01 [torrent2http] <defunct>
osmc     19258  0.0  0.0      0     0 ?        ZN   22:37   0:00 [torrent2http] <defunct>
osmc     19274  1.1  0.0      0     0 ?        ZN   22:37   0:19 [torrent2http] <defunct>
osmc     19347  0.1  0.0      0     0 ?        ZN   22:39   0:01 [torrent2http] <defunct>
osmc     19363  0.0  0.0      0     0 ?        ZN   22:40   0:00 [torrent2http] <defunct>
osmc     19463  0.0  0.0      0     0 ?        ZN   22:43   0:00 [torrent2http] <defunct>
osmc     19482  0.0  0.0      0     0 ?        ZN   22:44   0:00 [torrent2http] <defunct>
osmc     19498  2.1  0.0      0     0 ?        ZN   22:44   0:26 [torrent2http] <defunct>
osmc     19543  0.0  0.0      0     0 ?        ZN   22:45   0:00 [torrent2http] <defunct>
osmc     19559  0.0  0.0      0     0 ?        ZN   22:45   0:00 [torrent2http] <defunct>
osmc     19576  0.0  0.0      0     0 ?        ZN   22:45   0:00 [torrent2http] <defunct>
osmc     19591  2.3  0.0      0     0 ?        ZN   22:45   0:28 [torrent2http] <defunct>
osmc     19642  0.0  0.0      0     0 ?        ZN   22:47   0:00 [torrent2http] <defunct>
osmc     19658  2.1  0.0      0     0 ?        ZN   22:47   0:22 [torrent2http] <defunct>
osmc     19705  2.1  0.0      0     0 ?        ZN   22:49   0:19 [torrent2http] <defunct>

```

With wait() Python reads the termination status and the SO removes the zombie process.
sandbox1
Palatosino 2016-01-29 00:33:26 +01:00
parent 91b10341c5
commit 35f474b43e
1 changed files with 1 additions and 0 deletions

View File

@ -482,6 +482,7 @@ class Engine:
else: else:
self._log("torrent2http successfully shut down.") self._log("torrent2http successfully shut down.")
self.wait_on_close_timeout = None self.wait_on_close_timeout = None
self.process.wait()
self.started = False self.started = False
self.logpipe = None self.logpipe = None
self.process = None self.process = None