Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replace ASF Celix Thread abstraction with libuv #769

Open
5 tasks
pnoltes opened this issue Oct 6, 2024 · 0 comments
Open
5 tasks

Replace ASF Celix Thread abstraction with libuv #769

pnoltes opened this issue Oct 6, 2024 · 0 comments
Labels
component/utils Categorizes an issue or PR relevant to the utils. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/feature Categorizes issue or PR as related to a new feature.
Milestone

Comments

@pnoltes
Copy link
Contributor

pnoltes commented Oct 6, 2024

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 pnoltes added kind/feature Categorizes issue or PR as related to a new feature. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API component/utils Categorizes an issue or PR relevant to the utils. labels Oct 6, 2024
@pnoltes pnoltes added this to the 3.0.0 milestone Oct 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component/utils Categorizes an issue or PR relevant to the utils. kind/api-change Categorizes issue or PR as related to adding, removing, or otherwise changing an API kind/feature Categorizes issue or PR as related to a new feature.
Projects
None yet
Development

No branches or pull requests

1 participant