python / cpython

The Python programming language
https://www.python.org/
Other
60.02k stars 29.05k forks source link

os.popen#.close() exit code under Windows enhancement #32787

Closed db3l closed 22 years ago

db3l commented 23 years ago
BPO 401032
Nosy @mhammond, @db3l
Files
  • None: None
  • Note: these values reflect the state of the issue at the time it was migrated and might not reflect the current state.

    Show more details

    GitHub fields: ```python assignee = 'https://github.com/mhammond' closed_at = created_at = labels = ['interpreter-core'] title = 'os.popen#.close() exit code under Windows enhancement' updated_at = user = 'https://github.com/db3l' ``` bugs.python.org fields: ```python activity = actor = 'mhammond' assignee = 'mhammond' closed = True closed_date = None closer = None components = ['Interpreter Core'] creation = creator = 'db3l' dependencies = [] files = ['2670'] hgrepos = [] issue_num = 401032 keywords = ['patch'] message_count = 4.0 messages = ['33629', '33630', '33631', '33632'] nosy_count = 2.0 nosy_names = ['mhammond', 'db3l'] pr_nums = [] priority = 'normal' resolution = 'fixed' stage = None status = 'closed' superseder = None type = None url = 'https://bugs.python.org/issue401032' versions = [] ```

    db3l commented 23 years ago
    mhammond commented 23 years ago

    Applied.

    db3l commented 23 years ago

    This is an enhancement to a prior patch (100941) originally supplied to add exit code processing to the win32pipe-based routines included in posixmodule.c. Based on the need for the higher order (os.popen# where # >=2) functions to close handles in different orders, and on discussion in c.l.py, this patch removes the risk of deadlock waiting for the child previously present in certain cases. It adds tracking of all file handles returned from an os.popen* call and only waits for the child process, returning the exit code, on the closure of the final file handle to that child. It also touches the w9xpopen.c file in order to properly bubble up exit codes under Windows 95/98 to permit these changes to work on those platforms as well. The patch is rooted in the dist/src directory.

    mhammond commented 22 years ago

    Logged In: YES user_id=14198

    My last comment indicated I check the fix in, so cleaning up by marking "Fixed"