[Python-Dev] Functionality in subprocess.Popen.terminate()

Nick Coghlan ncoghlan at gmail.com
Tue Aug 4 11:27:46 CEST 2009


Eric Pruitt wrote:
> In my GSoC project, I have implemented asnychronous I/O in
> subprocess.Popen. Since the read/write operations are asynchronous, the
> program may have already exited by the time one calls the asyncread
> function I have implemented. While it returns the data just fine, I have
> come across an issue with the TerminateProcess function in Windows: if
> the program has already exited, when subprocess.Popen.Terminate calls
> the Windows built-in "TerminateProcess" function, an "access denied"
> error will occur. Should I just make it so that this exception is simply
> ignored or perform some kind of check to see if the process exists
> beforehand? If the latter, I have been unable to find a way to do so, to
> my liking at least. The solutions I saw would require code that seems a
> bit excessive to me.

I'm pretty sure we already ignore some spurious error messages in cases
like calling flush() in file.close(). I would suggest checking what the
io module does in such cases and see what kind of precedent it sets.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------


More information about the Python-Dev mailing list