summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohannes Richter <johannes.richter@kernkonzept.com>2014-03-25 10:00:33 +0100
committerDavid Pursehouse <david.pursehouse@sonymobile.com>2014-04-03 14:57:32 +0900
commit254295fd70fd6637a98886937ef5f009cdd687cb (patch)
treece1e25115c0d0e1ba8eba2c19f402d19b8cc6f43
parent30d86be3ae7b4c2bcc9119bcc685df6e33bc5858 (diff)
downloadpygerrit-254295fd70fd6637a98886937ef5f009cdd687cb.tar.gz
Fix for hanging connections
* client.stop_event_stream() was not closing Change-Id: Idf38565332a7865063caf614992ba376804da1a7
-rw-r--r--pygerrit/stream.py4
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()