Use one thread to run several engines
Currently, graph action is build around a loop that waits for futures to complete. Nothing in that architecture dictates that each engine should use separate thread. To improve its scalability TaskFlow should provide means to share the thread between several engines.
Blueprint information
- Status:
- Complete
- Approver:
- Joshua Harlow
- Priority:
- Medium
- Drafter:
- Ivan Melnikov
- Direction:
- Approved
- Assignee:
- None
- Definition:
- Discussion
- Series goal:
- None
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Joshua Harlow
- Completed by
- Joshua Harlow
Related branches
Related bugs
Sprints
Whiteboard
Another option would be to make GraphAction completely callback-based (call it 'explicitly event-driven) and provide means to integrate it into external event event loops, like asyncio/tulip or eventlet or reactor from twisted or whatever (each of them can call callbacks on events).
JH: I think this can currently be done by sharing a executor right? It doesn't use the same eventloop but it seems like if an executor can wrap a eventloop then u could just share that same executor as u already can right?
Gerrit topic: https:/
Addressed by: https:/
Add a example showing how to share an executor