[fix] Added event tracking for server startup #129
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What was done in this PR:
Added events to the startup process of tracking, ui and engine.
This removes the race conditions we were experiencing repeatedly, also removes the need to run
start_server()as early as possible.This works on an event-based architecture:
start_server_componentis passed an event. The responsability is of this function to, at some point, run event.set()@app.on_event("startup")callback mechanism, the event is setevent.wait(), this locks everything down until the server actually startsHow it was tested:
Simple scripts that were failing before, can run further testing
Additional notes:
Did not implement UI waiting, it runs event.set() without waiting, might want to add some actual on_start callbacks
Did not implement timeouts, it's very easy to do, but doesn't seem very necessary
It is no longer a russian roulette to run llmstudio