Dynamic Dependencies: Event System
As I mentioned in #3, the current dependency resolution algorithms and surrounding infrastructure are not robust enough to support dynamic addition, deletion, and reincarnation of services. My thoughts are to have some kind of internal event system, where any threads can post an event with a little data up to a central dispatcher thread, which of course then distributes the required task to another thread. There's a branch up called event-system where I was experimenting with something like that. However, that attempt was before I had a couple of vital features, like better management of process's environments and a simpler re-implementation of
std::process::Command. This is pretty much an implementation detail, but one that I don't have a good grasp on, so that's why this is marked as help-wanted.
Some of this also depends on figuring out a better model for dealing with "special" services, like redoxfs and vesad (refer to #3). However, does anybody know of a reasonable simple event bus, or a decent design I could implement that would work well?
This is also a dependency for parallel service startup (really just a means to arrive at parallel startup), although startup times currently are about 2 seconds, so I don't think it's terribly urgent, other than being one of my goals :D.