File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff 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
Original file line number Diff line number Diff 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.
You can’t perform that action at this time.
0 commit comments