summaryrefslogtreecommitdiff
path: root/qpid/python
diff options
context:
space:
mode:
authorKen Giusti <kgiusti@apache.org>2014-05-20 18:03:46 +0000
committerKen Giusti <kgiusti@apache.org>2014-05-20 18:03:46 +0000
commitaf65960bf1d7fad43a77dfbe2a216e793de3a90f (patch)
treeedcd27755c3e384240d04d05a7652e66443b2024 /qpid/python
parent65af0e588588f15bbb1498403ee49f3c41ed04a0 (diff)
downloadqpid-python-af65960bf1d7fad43a77dfbe2a216e793de3a90f.tar.gz
QPID-5637: reset Selector singleton across fork.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1596341 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python')
-rw-r--r--qpid/python/qpid/selector.py6
1 files changed, 4 insertions, 2 deletions
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()