Replace ASF Celix Thread abstraction with libuv
Opened this issue · 0 comments
Intro
This ticket focuses on ensuring that ASF Celix's public API uses libuv for thread management and thread-related utilities.
Steps
- Introduce the libuv dependency
Introduce the libuv dependency in Conan, the ci ubuntu/macos files and the build ASF Celix with brew/apt documentation.
- Add lock guard cleanup helpers
Implement and test C helper macros or functions to provide a lock guard using __attribute__((cleanup))
. These helpers will manage the automatic unlocking of a mutex or read/write lock when going out of scope.
- Replace ASF Celix thread usage with libuv's thread abstraction
Replace the current celix_thread_t
, celix_thread_once_t
with libuv's thread abstraction (uv_thread_t
, etc).
- Replace ASF Celix mutex, cond and rwlock with libuv's condition and mutex abstraction.
Replace the current celix_thread_mutex_t
, celix_thread_rwlock_t
, etc with libuv's mutex,cond and rwlock abstraction.
- Remove
celix_threads.h
header
When usage of ASF Celix threads, mutexes, etc is removed the celix_threads.h
can also be removed.