Skip to content

Commit 9836102

Browse files
committed
fix order of _disposables
1 parent 72f38c4 commit 9836102

2 files changed

Lines changed: 4 additions & 3 deletions

File tree

dimos/agents/mcp/mcp_server.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,6 @@ def start(self) -> None:
180180
def stop(self) -> None:
181181
if self._uvicorn_server:
182182
self._uvicorn_server.should_exit = True
183-
loop = self._async_thread.loop
184183
if self._serve_future is not None:
185184
self._serve_future.result(timeout=5.0)
186185
self._uvicorn_server = None

dimos/core/module.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,15 +134,17 @@ def _stop(self) -> None:
134134
return
135135
self.mod_state.set("stopped")
136136

137+
# dispose of things BEFORE making aspects like rpc and _tf invalid
138+
if hasattr(self, "_disposables"):
139+
self._disposables.dispose() # stops _async_thread via disposable
140+
137141
if self.rpc:
138142
self.rpc.stop() # type: ignore[attr-defined]
139143
self.rpc = None # type: ignore[assignment]
140144

141145
if hasattr(self, "_tf") and self._tf is not None:
142146
self._tf.stop()
143147
self._tf = None
144-
if hasattr(self, "_disposables"):
145-
self._disposables.dispose() # stops _async_thread via disposable
146148

147149
# Break the In/Out -> owner -> self reference cycle so the instance
148150
# can be freed by refcount instead of waiting for GC.

0 commit comments

Comments
 (0)