celix icon indicating copy to clipboard operation
celix copied to clipboard

Replace ASF Celix Thread abstraction with libuv

Open pnoltes opened this issue 1 year ago • 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.

pnoltes avatar Oct 06 '24 18:10 pnoltes