diff options
-rw-r--r-- | paramiko/buffered_pipe.py | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/paramiko/buffered_pipe.py b/paramiko/buffered_pipe.py index 8e1aacd0..eb33734b 100644 --- a/paramiko/buffered_pipe.py +++ b/paramiko/buffered_pipe.py @@ -48,6 +48,21 @@ class BufferedPipe (object): self._buffer = array.array('B') self._closed = False + def set_event(self, event): + """ + Set an event on this buffer. When data is ready to be read (or the + buffer has been closed), the event will be set. When no data is + ready, the event will be cleared. + + @param event: the event to set/clear + @type event: Event + """ + self._event = event + if len(self._buffer) > 0: + event.set() + else: + event.clear() + def feed(self, data): """ Feed new data into this pipe. This method is assumed to be called @@ -133,7 +148,7 @@ class BufferedPipe (object): self._event.clear() else: out = self._buffer[:nbytes].tostring() - del self.in_buffer[:nbytes] + del self._buffer[:nbytes] finally: self._lock.release() |