Changing the run level in the terminate callback is prone to deadlock if the callback is called when classy application stops. The deadlocks happen when run level callbacks also attempt to talk to the application controller.
- Remove
terminate_loop from terminate callback and move it to a dedicated API
- After calling this API the RL server becomes locked, it responds with errors to all attempts to change the run level.
- User should call this function directly from a safe place that is outside of application callback.
Changing the run level in the terminate callback is prone to deadlock if the callback is called when classy application stops. The deadlocks happen when run level callbacks also attempt to talk to the application controller.
terminate_loopfrom terminate callback and move it to a dedicated API