Skip to content

thread scheduler [experimental]

Latest

Choose a tag to compare

@FreezB11 FreezB11 released this 28 Dec 12:18
· 79 commits to main since this release

This release transforms the lightweight threading implementation into a fully reusable C library (libthread_lt). Developers can now integrate this threading system into their own projects by linking against the provided static or shared objects, without needing to include raw source files.

🚀 What's New
Library Artifacts: The build system now produces both libthread_lt.a (static) and libthread_lt.so (shared) libraries.

Refactored Build System: Introduced a modular Makefile with support for rpath linking and separate object compilation.

Symbol Export Fixes: Corrected assembly symbol visibility for context_switch and thread_trampoline, resolving linker errors in dynamic builds.

Header Organization: Public API headers are now consolidated in the include/ directory for cleaner imports.

📦 Installation & Usage

  1. Using the Static Library (Recommended)
    Bundles the library code directly into your binary. No runtime dependencies.
gcc -I./include main.c libthread_lt.a -o my_app
  1. Using the Shared Library
    Requires the .so file to be present at runtime.
gcc -I./include main.c -L. -lthread_lt -o my_app
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:.
./my_app