[Python-Dev] Avoiding file descriptors leakage in subprocess.Popen() (original) (raw)
Christian Heimes lists at cheimes.de
Sat Jun 13 02:06:22 CEST 2009
- Previous message: [Python-Dev] Avoiding file descriptors leakage in subprocess.Popen()
- Next message: [Python-Dev] Avoiding file descriptors leakage in subprocess.Popen()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Facundo Batista wrote:
I just don't like a huge try/finally... but as FDs are just ints, do you think is there a better way to handle it?
How about a nice 'n shiny context wrapper for the pipe:
import os
class Pipe(object): def enter(self): self.read, self.write = os.pipe() return self.read, self.write
def __exit__(self, *args):
try:
os.close(self.read)
finally:
# make sure that write is closed even if
# self.read can't be closed
os.close(self.write)
with Pipe() as (read, write): print read, write
Christian
PS and nit pick: File descriptor are opaque resource handlers which just happened to be ints. They should be treated as magic cookies.
- Previous message: [Python-Dev] Avoiding file descriptors leakage in subprocess.Popen()
- Next message: [Python-Dev] Avoiding file descriptors leakage in subprocess.Popen()
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]