apache / celix

Apache Celix is a framework for C and C++14 to develop dynamic modular software applications using component and in-process service-oriented programming.
https://celix.apache.org/
Apache License 2.0
170 stars 89 forks source link

Update internal ASF Celix event loop to use libuv #770

Open pnoltes opened 1 month ago

pnoltes commented 1 month ago

Intro

This ticket focuses on the internal implementation changes related to Celix’s event loop and how libuv can be leveraged internally to simplify platform abstraction.

Ideally this can be done without breaking the public API.

Steps

Modify the internal Celix event thread implementation to use libuv's event loop (uv_loop_t). This will abstract the current Linux-specific implementation and make it cross-platform.

Also update the scheduled event implementation to make use of libuv. Including usage of uv_timer_t if feasible.

If feasible simplify the celix shutdown procedure using libuv.