From: Ansgar Burchardt Date: Fri, 3 Jun 2011 09:55:44 +0000 (+0000) Subject: gpg.py: set O_NONBLOCK for writing X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=commitdiff_plain;h=438e50fc19e566ea0c986351681d865a36862713 gpg.py: set O_NONBLOCK for writing We need O_NONBLOCK as otherwise os.write() would block for large input. Signed-off-by: Ansgar Burchardt --- diff --git a/daklib/gpg.py b/daklib/gpg.py index 0e080df5..62bfe096 100644 --- a/daklib/gpg.py +++ b/daklib/gpg.py @@ -114,6 +114,10 @@ class SignedFile(object): raise GpgException("No valid signature found. (GPG exited with status code %s)\n%s" % (exit_code, self.stderr)) def _do_io(self, read, write): + for fd in write.keys(): + old = fcntl.fcntl(fd, fcntl.F_GETFL) + fcntl.fcntl(fd, fcntl.F_SETFL, old | os.O_NONBLOCK) + read_lines = dict( (fd, []) for fd in read ) write_pos = dict( (fd, 0) for fd in write )