hold managers in multiprocessing.Manager
related to efforts in #82
current litecord holds managers/singleton classes inside the app object/context. this is a bad idea, because of two things:
- typing is harder
- it leaves litecord unable to run more than one webserver thread. as state is local to the webserver itself, it would desync fast if someone ever bumped the thread counter, which might be important to do in production deployments.
the proposal here is to investigate multiprocessing.Manager to hold the singleton classes in a separate thread, so webservers operate on that shared state instead.
it is still a matter of investigation and seeing if it actually works out.