red-cpu-2509902/12/2016, 3:44 PM
class don’t look like a good place to add multithreaded/distributed functionality. It’s almost don’t have a state (all state in the scheduler actually). Which led to the question - if actually
will be the place where ‘engine’ lives we need to reify and extract actual
api. From current code perspective
, all `State`s,
looks like actual api for scheduler (both from task implementing side and client usage side) while classes like
looks like something which should be implemented atop of the api, just like other user code, maybe just more common. So maybe it’s reasonable to merge
and extract more refined api? More exactly: engine is something you can build from product factories (Selectors/Nodes/etc here) and ask for products. It will manage execution planning & somehow caching. Current implementation will go to one concrete engine implementation with different executors (serial & multithreaded). Thoughts?