pnoltes opened a new pull request, #583: URL: https://github.com/apache/celix/pull/583
This PR adds a scheduled event abstraction to the Celix framework, enabling the execution of scheduled events on the Celix event thread. While scheduled events are processed on the Apache Celix event thread, they are not part of the Apache Celix event queue, meaning that a waitForEmptyQueue call will not wait for scheduled events. The introduction of scheduled events allows small, low-frequency tasks to be performed on the existing Apache Celix event thread, thus reducing the number of threads that Apache Celix requires. There are two types of scheduled events: One-shot events: These are scheduled events that will only trigger once before being automatically removed. Recurring events: These are scheduled events with an interval that will continue to trigger until they are removed. A scheduled event can be added, removed, or woken up from the bundle context using both C and C++ APIs. In addition to these changes, this PR: Adds a `celixThreadCondition_getTime` function that returns a timespec that can be used as an absolute wait time in a Celix condition variable. Introduces a `celixThreadCondition_waitUntil` function that can be used to wait for an absolute time in the future. Includes an example of a `__cleanup__` attribute in the celix_scheduled_event.h header. Please note that this is a private header, so it can be changed or removed without breaking the API. Replaces the polling thread in the common remote service with a scheduled event. Substitutes the PubSub topology manager handling thread with a scheduled event. Replaces the remote service shared memory watcher thread with a scheduled event. Please note that the use of scheduled events in remote services, PubSub, and/or remote services shared memory watchers can be reverted if we decide that this step is unnecessary or too risky. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: dev-unsubscr...@celix.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org