Message93787
| Author |
ocean-city |
| Recipients |
gjb1002, gregory.p.smith, markmentovai, ocean-city, tim.golden, twhitema |
| Date |
2009年10月09日.12:14:04 |
| SpamBayes Score |
2.1318615e-06 |
| Marked as misclassified |
No |
| Message-id |
<1255090446.57.0.453011167358.issue3210@psf.upfronthosting.co.za> |
| In-reply-to |
| Content |
No, this is not duplicate of issue5179. That issue described handle was
leaked when exception occurred. But this issue is not *leak*. See
following code.
import subprocess, os, sys
file = open("filename", "w")
try:
proc = subprocess.Popen("nosuchprogram", stdout=file)
except OSError:
file.close()
sys.exc_clear() # here we go....
os.remove("filename") # now we can delete file!
subprocess is implemented using sp_handle_type in PC/_subprocess.c
(windows). This object is in exception stack frame(?), so handle lives
until another exception occurs or explicitly sys.exc_clear() is called. |
|