amethyst / shred

Shared resource dispatcher

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Ability to suspend Systems

clarfonthey opened this issue · comments

From what I've seen, there doesn't seem to be the ability to suspend Systems? Basically, after exploring through amethyst and specs, I ended up concluding that shred would presumably be where this functionality would go. Feel free to direct me in the right place if that's not the case.

Right now, I know that amethyst supports a Pausable wrapper which simply checks a condition every time the system is run; this is okay, but it would be nice to be able to suspend a system (making it no longer dispatched) and be able to later signal it to be added back to the queue. Presumably, this would help make it easier to interface with Generators and the like later on.

Alternatively, you could argue that the best case for this is to have multiple Dispatchers and use the right one depending on the state of the system. This might be better for cases where the set of currently running systems is swapped, e.g. a pause menu in a game, rather than the generic case which might be better for I/O. If this is the route that seems best, then I can move this issue to specs and discuss that there.

Anyway, I didn't see a discussion on this, so, I figured I'd start one.

Does #147 cover your use case?