diff options
author | Krzysztof Rusek <kr292291@students.mimuw.edu.pl> | 2016-02-11 16:51:19 +0100 |
---|---|---|
committer | Jeff Forcier <jeff@bitprophet.org> | 2016-06-09 10:39:35 -0700 |
commit | caa842bf5d5b59002e8277f55ccd29c531aea08e (patch) | |
tree | 8e34077bf47768560703985277c3e7302fcd2143 /paramiko/buffered_pipe.py | |
parent | 7bd8e93a0e16729c7d348cf5d4b90e62083991d4 (diff) | |
download | paramiko-caa842bf5d5b59002e8277f55ccd29c531aea08e.tar.gz |
Issue #537 reproduction test and fix
Diffstat (limited to 'paramiko/buffered_pipe.py')
-rw-r--r-- | paramiko/buffered_pipe.py | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/paramiko/buffered_pipe.py b/paramiko/buffered_pipe.py index d5fe164e..e81e9b3d 100644 --- a/paramiko/buffered_pipe.py +++ b/paramiko/buffered_pipe.py @@ -70,11 +70,15 @@ class BufferedPipe (object): :param threading.Event event: the event to set/clear """ - self._event = event - if len(self._buffer) > 0: - event.set() - else: - event.clear() + self._lock.acquire() + try: + self._event = event + if self._closed or len(self._buffer) > 0: + event.set() + else: + event.clear() + finally: + self._lock.release() def feed(self, data): """ |