summaryrefslogtreecommitdiffstats
path: root/execnet-1.1-issue9.patch
diff options
context:
space:
mode:
Diffstat (limited to 'execnet-1.1-issue9.patch')
-rw-r--r--execnet-1.1-issue9.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/execnet-1.1-issue9.patch b/execnet-1.1-issue9.patch
new file mode 100644
index 0000000..ee321b1
--- /dev/null
+++ b/execnet-1.1-issue9.patch
@@ -0,0 +1,71 @@
+# HG changeset patch
+# User Ronny Pfannschmidt <Ronny.Pfannschmidt@gmx.de>
+# Date 1346694793 -7200
+# Node ID 49c5934137e5f8ac9d16ea96ac2a5c01149ad190
+# Parent ec10c11ac8eb248a995c70ad2fee426315249f33
+fix issue #9 - terminate the worker threadpools in safe_terminate
+
+diff -r ec10c11ac8eb248a995c70ad2fee426315249f33 -r 49c5934137e5f8ac9d16ea96ac2a5c01149ad190 CHANGELOG
+--- a/CHANGELOG Wed Jun 20 18:16:40 2012 +0200
++++ b/CHANGELOG Mon Sep 03 19:53:13 2012 +0200
+@@ -23,6 +23,8 @@
+ - fix issue #2 - properly reconfigure the channels string coercion for rsync,
+ so it can send from python2 to python3
+
++- fix issue #9 - propperly terminate the worker threadpools in safe_terminate
++
+ - refactor socketserver, so it can be directly remote_exec'd for starting a socket gateway on a remote
+
+
+diff -r ec10c11ac8eb248a995c70ad2fee426315249f33 -r 49c5934137e5f8ac9d16ea96ac2a5c01149ad190 execnet/multi.py
+--- a/execnet/multi.py Wed Jun 20 18:16:40 2012 +0200
++++ b/execnet/multi.py Mon Sep 03 19:53:13 2012 +0200
+@@ -252,6 +252,8 @@
+ replylist.append(reply)
+ for reply in replylist:
+ reply.get()
++ workerpool.shutdown()
++ workerpool.join()
+
+
+ default_group = Group()
+diff -r ec10c11ac8eb248a995c70ad2fee426315249f33 -r 49c5934137e5f8ac9d16ea96ac2a5c01149ad190 testing/test_multi.py
+--- a/testing/test_multi.py Wed Jun 20 18:16:40 2012 +0200
++++ b/testing/test_multi.py Mon Sep 03 19:53:13 2012 +0200
+@@ -2,6 +2,8 @@
+ tests for multi channels and gateway Groups
+ """
+
++import threading
++from time import sleep
+ import execnet
+ import py
+ from execnet.gateway_base import Channel
+@@ -193,6 +195,7 @@
+
+
+ def test_safe_terminate():
++ active = threading.active_count()
+ l = []
+ def term():
+ py.std.time.sleep(3)
+@@ -200,8 +203,12 @@
+ l.append(1)
+ safe_terminate(1, [(term, kill)] * 10)
+ assert len(l) == 10
++ sleep(0.1)
++ py.std.gc.collect()
++ assert threading.active_count() == active
+
+ def test_safe_terminate2():
++ active = threading.active_count()
+ l = []
+ def term():
+ return
+@@ -209,3 +216,6 @@
+ l.append(1)
+ safe_terminate(3, [(term, kill)] * 10)
+ assert len(l) == 0
++ sleep(0.1)
++ py.std.gc.collect()
++ assert threading.active_count() == active