From af65960bf1d7fad43a77dfbe2a216e793de3a90f Mon Sep 17 00:00:00 2001 From: Ken Giusti Date: Tue, 20 May 2014 18:03:46 +0000 Subject: QPID-5637: reset Selector singleton across fork. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1596341 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/python/qpid/selector.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'qpid/python') diff --git a/qpid/python/qpid/selector.py b/qpid/python/qpid/selector.py index ff94091da0..d2f4c1fc88 100644 --- a/qpid/python/qpid/selector.py +++ b/qpid/python/qpid/selector.py @@ -16,7 +16,7 @@ # specific language governing permissions and limitations # under the License. # -import atexit, time, errno +import atexit, time, errno, os from compat import select, set, selectable_waiter from threading import Thread, Lock @@ -43,16 +43,18 @@ class Selector: lock = Lock() DEFAULT = None + _current_pid = None @staticmethod def default(): Selector.lock.acquire() try: - if Selector.DEFAULT is None: + if Selector.DEFAULT is None or Selector._current_pid != os.getpid(): sel = Selector() atexit.register(sel.stop) sel.start() Selector.DEFAULT = sel + Selector._current_pid = os.getpid() return Selector.DEFAULT finally: Selector.lock.release() -- cgit v1.2.1