summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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()