diff options
| author | Ken Giusti <kgiusti@apache.org> | 2014-05-20 18:03:46 +0000 |
|---|---|---|
| committer | Ken Giusti <kgiusti@apache.org> | 2014-05-20 18:03:46 +0000 |
| commit | af65960bf1d7fad43a77dfbe2a216e793de3a90f (patch) | |
| tree | edcd27755c3e384240d04d05a7652e66443b2024 /qpid/python | |
| parent | 65af0e588588f15bbb1498403ee49f3c41ed04a0 (diff) | |
| download | qpid-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.py | 6 |
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() |
