|
|
@ -415,7 +415,7 @@ class Context(object):
|
|
|
|
def Disconnect(self):
|
|
|
|
def Disconnect(self):
|
|
|
|
self.stream = None
|
|
|
|
self.stream = None
|
|
|
|
LOG.debug('Parent stream is gone, dying.')
|
|
|
|
LOG.debug('Parent stream is gone, dying.')
|
|
|
|
self.broker.Finalize(wait=False)
|
|
|
|
self.broker.Finalize()
|
|
|
|
|
|
|
|
|
|
|
|
def AllocHandle(self):
|
|
|
|
def AllocHandle(self):
|
|
|
|
"""Allocate a handle."""
|
|
|
|
"""Allocate a handle."""
|
|
|
@ -650,12 +650,10 @@ class Broker(object):
|
|
|
|
"""Wait for the broker to stop."""
|
|
|
|
"""Wait for the broker to stop."""
|
|
|
|
self._thread.join()
|
|
|
|
self._thread.join()
|
|
|
|
|
|
|
|
|
|
|
|
def Finalize(self, wait=True):
|
|
|
|
def Finalize(self):
|
|
|
|
"""Disconect all streams and wait for broker to stop."""
|
|
|
|
"""Disconect all streams and wait for broker to stop."""
|
|
|
|
self._alive = False
|
|
|
|
self._alive = False
|
|
|
|
self._waker.Wake()
|
|
|
|
self._waker.Wake()
|
|
|
|
if wait:
|
|
|
|
|
|
|
|
self.Wait()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def __repr__(self):
|
|
|
|
def __repr__(self):
|
|
|
|
return 'Broker()'
|
|
|
|
return 'Broker()'
|
|
|
@ -728,6 +726,7 @@ class ExternalContext(object):
|
|
|
|
self._ReapFirstStage()
|
|
|
|
self._ReapFirstStage()
|
|
|
|
self._FixupMainModule()
|
|
|
|
self._FixupMainModule()
|
|
|
|
self._SetupMaster(key)
|
|
|
|
self._SetupMaster(key)
|
|
|
|
|
|
|
|
try:
|
|
|
|
self._SetupLogging(log_level)
|
|
|
|
self._SetupLogging(log_level)
|
|
|
|
self._SetupImporter()
|
|
|
|
self._SetupImporter()
|
|
|
|
self._SetupStdio()
|
|
|
|
self._SetupStdio()
|
|
|
@ -738,3 +737,6 @@ class ExternalContext(object):
|
|
|
|
self._DispatchCalls()
|
|
|
|
self._DispatchCalls()
|
|
|
|
self.broker.Wait()
|
|
|
|
self.broker.Wait()
|
|
|
|
LOG.debug('ExternalContext.main() exitting')
|
|
|
|
LOG.debug('ExternalContext.main() exitting')
|
|
|
|
|
|
|
|
except Exception:
|
|
|
|
|
|
|
|
raise
|
|
|
|
|
|
|
|
self.broker.Finalize()
|
|
|
|