-
Notifications
You must be signed in to change notification settings - Fork 97
Replace ASF Celix Thread abstraction with libuv #769
Copy link
Copy link
Open
Labels
component/utilsCategorizes an issue or PR relevant to the utils.Categorizes an issue or PR relevant to the utils.kind/api-changeCategorizes issue or PR as related to adding, removing, or otherwise changing an APICategorizes issue or PR as related to adding, removing, or otherwise changing an APIkind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.
Milestone
Metadata
Metadata
Assignees
Labels
component/utilsCategorizes an issue or PR relevant to the utils.Categorizes an issue or PR relevant to the utils.kind/api-changeCategorizes issue or PR as related to adding, removing, or otherwise changing an APICategorizes issue or PR as related to adding, removing, or otherwise changing an APIkind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.
Type
Fields
Give feedbackNo fields configured for issues without a type.
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 in Conan, the ci ubuntu/macos files and the build ASF Celix with brew/apt documentation.
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 the current
celix_thread_t,celix_thread_once_twith libuv's thread abstraction (uv_thread_t, etc).Replace the current
celix_thread_mutex_t,celix_thread_rwlock_t, etc with libuv's mutex,cond and rwlock abstraction.Replace celix tss with libuv local thread storage (uv_key_t)
Remove
celix_threads.hheaderWhen usage of ASF Celix threads, mutexes, etc is removed the
celix_threads.hcan also be removed.