diff options
author | Johannes Richter <johannes.richter@kernkonzept.com> | 2014-03-25 10:00:33 +0100 |
---|---|---|
committer | David Pursehouse <david.pursehouse@sonymobile.com> | 2014-04-03 14:57:32 +0900 |
commit | 254295fd70fd6637a98886937ef5f009cdd687cb (patch) | |
tree | ce1e25115c0d0e1ba8eba2c19f402d19b8cc6f43 | |
parent | 30d86be3ae7b4c2bcc9119bcc685df6e33bc5858 (diff) | |
download | pygerrit-254295fd70fd6637a98886937ef5f009cdd687cb.tar.gz |
Fix for hanging connections
* client.stop_event_stream() was not closing
Change-Id: Idf38565332a7865063caf614992ba376804da1a7
-rw-r--r-- | pygerrit/stream.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/pygerrit/stream.py b/pygerrit/stream.py index 1705bf0..1504dde 100644 --- a/pygerrit/stream.py +++ b/pygerrit/stream.py @@ -41,10 +41,13 @@ class GerritStream(Thread): self._gerrit = gerrit self._ssh_client = ssh_client self._stop = Event() + self._channel = None def stop(self): """ Stop the thread. """ self._stop.set() + if self._channel is not None: + self._channel.close() def _error_event(self, error): """ Dispatch `error` to the Gerrit client. """ @@ -53,6 +56,7 @@ class GerritStream(Thread): def run(self): """ Listen to the stream and send events to the client. """ channel = self._ssh_client.get_transport().open_session() + self._channel = channel channel.exec_command("gerrit stream-events") stdout = channel.makefile() stderr = channel.makefile_stderr() |