fl = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
- def readlineNonBlocking(stream):
- """Read a line nonblocking. Returns b'' if nothing read."""
- try:
- return stream.readline()
- except:
- return b''
- pass
-
-
# Read stdout and stderr of tarp
errmsg = b""
while tarp.poll() == None:
rd,wr,ex = select.select([tarp.stdout, tarp.stderr], [], [], 0.05)
-
if tarp.stdout in rd:
- l = readlineNonBlocking(tarp.stdout)
- if l != b"":
- logging.debug(l[:-1].decode())
-
+ logging.debug( tarp.stdout.readline()[:-1].decode() )
if tarp.stderr in rd:
- errmsg += readlineNonBlocking(tarp.stderr)
-
+ errmsg += tarp.stderr.read()
# Get the remainging output of tarp
for l in tarp.stdout.readlines():