Mercurial > kallithea
diff rhodecode/lib/subprocessio.py @ 2790:3c0ae44557c4 beta
more py2.5 compatibility patches
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Mon, 03 Sep 2012 19:47:23 +0200 |
parents | fd5f2b217488 |
children | 4b7ad342e53b |
line wrap: on
line diff
--- a/rhodecode/lib/subprocessio.py Mon Sep 03 18:21:42 2012 +0200 +++ b/rhodecode/lib/subprocessio.py Mon Sep 03 19:47:23 2012 +0200 @@ -24,11 +24,10 @@ ''' import os import subprocess -import threading -from rhodecode.lib.compat import deque, Event +from rhodecode.lib.compat import deque, Event, Thread, _bytes -class StreamFeeder(threading.Thread): +class StreamFeeder(Thread): """ Normal writing into pipe-like is blocking once the buffer is filled. This thread allows a thread to seep data from a file-like into a pipe @@ -39,9 +38,9 @@ super(StreamFeeder, self).__init__() self.daemon = True filelike = False - self.bytes = bytes() - if type(source) in (type(''), bytes, bytearray): # string-like - self.bytes = bytes(source) + self.bytes = _bytes() + if type(source) in (type(''), _bytes, bytearray): # string-like + self.bytes = _bytes(source) else: # can be either file pointer or file-like if type(source) in (int, long): # file pointer it is ## converting file descriptor (int) stdin into file-like @@ -77,7 +76,7 @@ return self.readiface -class InputStreamChunker(threading.Thread): +class InputStreamChunker(Thread): def __init__(self, source, target, buffer_size, chunk_size): super(InputStreamChunker, self).__init__() @@ -121,6 +120,7 @@ da = self.data_added go = self.go b = s.read(cs) + while b and go.is_set(): if len(t) > ccm: kr.clear() @@ -180,7 +180,7 @@ self.worker.data_added.wait(0.2) if len(self.data): self.worker.keep_reading.set() - return bytes(self.data.popleft()) + return _bytes(self.data.popleft()) elif self.worker.EOF.is_set(): raise StopIteration