This small series does another pass through the subscription, clients, services, and guard condition code, making improvements. In particular:
It fixes a bug where guard conditions would be ready over and over again. This would cause very high CPU load. Now once we get the status of a guard condition, we also reset the trigger.
It encapsulates subscriptions, services, and client code into their own classes. This allows us to make more of the class fields private, and do proper locking around them. It also has a side benefit of moving some code out of rmw_zenoh.cpp, which has grown quite large.
This small series does another pass through the subscription, clients, services, and guard condition code, making improvements. In particular: