blob: bcf4b4fd983b97975e7bd2ca0f2499081537881e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
# https://github.com/nplanel/parallel-ssh/commit/ee379dc5c69e4e0f62f92fb48f9a9ce6af0b2ac4.patch
From ee379dc5c69e4e0f62f92fb48f9a9ce6af0b2ac4 Mon Sep 17 00:00:00 2001
From: Nicolas PLANEL <nplanel@gmail.com>
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'):
|