summaryrefslogtreecommitdiffstats
path: root/source/n/pssh/pssh-2.3.1-py3-non-blocking.patch
blob: bcf4b4fd983b97975e7bd2ca0f2499081537881e (plain) (blame)
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'):