Changeset 4370924 in rtems-tools


Ignore:
Timestamp:
Apr 24, 2017, 2:32:53 PM (2 years ago)
Author:
Chris Johns <chrisj@…>
Branches:
master
Children:
224fb21
Parents:
7d3350d
Message:

execute: Use the io python module for output capture.

This change drops the overhead of capturing the process output. The
io module in Python is similar to the POSIX API for a file read
where a read will return up to the buffer size rather than blocking
until the buffer is full.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • rtemstoolkit/execute.py

    r7d3350d r4370924  
    11#
    22# RTEMS Tools Project (http://www.rtems.org/)
    3 # Copyright 2010-2016 Chris Johns (chrisj@rtems.org)
     3# Copyright 2010-2017 Chris Johns (chrisj@rtems.org)
    44# All rights reserved.
    55#
     
    3838
    3939import functools
     40import io
    4041import os
    4142import re
     
    194195            try:
    195196                while True:
    196                     data = fh.read(1)
     197                    #
     198                    # The io module file handling return up to the size passed
     199                    # in.
     200                    #
     201                    data = fh.read(4096)
    197202                    if len(data) == 0:
    198203                        break
     
    256261                                             name = '_stdout[%s]' % (name),
    257262                                             args = (self,
    258                                                      proc.stdout,
     263                                                     io.open(proc.stdout.fileno(),
     264                                                             closefd = False),
    259265                                                     self.output,
    260266                                                     ''))
     
    265271                                             name = '_stderr[%s]' % (name),
    266272                                             args = (self,
    267                                                      proc.stderr,
     273                                                     io.open(proc.stderr.fileno(),
     274                                                             closefd = False),
    268275                                                     self.output,
    269276                                                     self.error_prefix))
Note: See TracChangeset for help on using the changeset viewer.