Skip to content

Commit d2e6e2f

Browse files
author
Marko Petzold
committed
feat: Implement readiness signal for NodeManagementBridgeSession before attaching manager
1 parent 08b7cc8 commit d2e6e2f

2 files changed

Lines changed: 7 additions & 0 deletions

File tree

crossbar/edge/node/management.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,14 @@ def __init__(self, config):
187187
self._heartbeat_time_ns = None
188188
self._heartbeat = 0
189189
self._heartbeat_call = None
190+
from twisted.internet.defer import Deferred
191+
self._on_ready = Deferred()
190192

191193
def onJoin(self, details):
192194
self.log.debug('{klass}.onJoin(details={details})', klass=self.__class__.__name__, details=details)
195+
# Signal that bridge session is ready for attach_manager
196+
if not self._on_ready.called:
197+
self._on_ready.callback(None)
193198

194199
@inlineCallbacks
195200
def attach_manager(self, manager, management_realm, node_id):

crossbar/edge/node/node.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -727,6 +727,8 @@ def on_ready_success(res):
727727
self._manager, self._management_realm, self._management_session_id, self._node_id, self._node_extra = res
728728
if self._bridge_session:
729729
try:
730+
# Wait for bridge session to complete onJoin before attaching manager
731+
yield self._bridge_session._on_ready
730732
yield self._bridge_session.attach_manager(
731733
self._manager, self._management_realm, self._node_id)
732734
except:

0 commit comments

Comments
 (0)