# https://github.com/nplanel/parallel-ssh/commit/ee379dc5c69e4e0f62f92fb48f9a9ce6af0b2ac4.patch From ee379dc5c69e4e0f62f92fb48f9a9ce6af0b2ac4 Mon Sep 17 00:00:00 2001 From: Nicolas PLANEL Date: Fri, 23 Oct 2015 01:20:25 +1100 Subject: [PATCH] fixup : wakeup_writefd must be non-blocking wakeup_writefd should be non-blocking as signal.set_wakeup_fd() API request it. "ValueError: the fd 4 must be in non-blocking mode" --- psshlib/manager.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/psshlib/manager.py b/psshlib/manager.py index 7dbf4e3..db35e76 100644 --- a/psshlib/manager.py +++ b/psshlib/manager.py @@ -2,6 +2,7 @@ from errno import EINTR import os +import fcntl import select import signal import sys @@ -209,6 +210,7 @@ def __init__(self): # Setup the wakeup file descriptor to avoid hanging on lost signals. wakeup_readfd, wakeup_writefd = os.pipe() + fcntl.fcntl(wakeup_writefd, fcntl.F_SETFL, os.O_NONBLOCK) self.register_read(wakeup_readfd, self.wakeup_handler) # TODO: remove test when we stop supporting Python <2.5 if hasattr(signal, 'set_wakeup_fd'):