Skip to content

Replace ASF Celix Thread abstraction with libuv #769

Open
@pnoltes

Description

@pnoltes

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/utilsCategorizes an issue or PR relevant to the utils.kind/api-changeCategorizes issue or PR as related to adding, removing, or otherwise changing an APIkind/featureCategorizes issue or PR as related to a new feature.

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions