Author: kgiusti
Date: Tue May 20 18:03:46 2014
New Revision: 1596341
URL: http://svn.apache.org/r1596341
Log:
QPID-5637: reset Selector singleton across fork.
Modified:
qpid/trunk/qpid/python/qpid/selector.py
Modified: qpid/trunk/qpid/python/qpid/selector.py
URL:
http://svn.apache.org/viewvc/qpid/trunk/qpid/python/qpid/selector.py?rev=1596341&r1=1596340&r2=1596341&view=diff
==============================================================================
--- qpid/trunk/qpid/python/qpid/selector.py (original)
+++ qpid/trunk/qpid/python/qpid/selector.py Tue May 20 18:03:46 2014
@@ -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()
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]