The Client/ClientInfo stuff needs some major revamp.
Points that I remember encountering:
we need a way for clients to terminate automatically when they are not needed anymore. Probably some kind of work-counter that gets increased when something works on the client, and decreased when its done
we need a simple, proper way to launch a client or use the already running one, and do something on it. Make sure we actually know WHEN we can start doing things!
think about whether the Executor module is still the way to go to make things happen on the client
the ClientInfo feels like a random pile of things that were just stuffed in there because they didn't fit into the client and there was no other place
More thoughts:
each "activity" should probably have a defined, recognizable completion. Ideally, all activities should have blocking APIs, at least optionally.
The Client/ClientInfo stuff needs some major revamp.
Points that I remember encountering:
More thoughts: