Why isn't there a concept of an executor at the rcl layer?
The rcl layer provides functions to support the implementation of language specific ROS Client Libraries.
This functionality is listed here: https://docs.ros2.org/latest/api/rcl/...
Every ROS2 Client library I'm aware of supports executors, so why isn't this available in rcl? It would make development of a language specific client library easier if they didn't have to write the executor from scratch in each one.
Also how do the subscriptions and timers in the rcl work without any concept of an executor? What calls the callbacks?
Also, do the client librarys sometimes dip directly call functions of the rmw layer, or do they always go through the rcl?
Does the rmw have any notion of an executor?