Add multi-thread support

This commit is contained in:
2025-09-06 04:29:50 -07:00
parent 814234603d
commit 97d1b4a701
8 changed files with 277 additions and 151 deletions

View File

@ -1,13 +1,30 @@
# RefCount
RefCount is a reference counting (thus the name) and garbage collection library
written in standard C99.
written in C.
RefCount has support for
- breaking dependency chains via garbage collection
- Multiple distinct contexts allowing the tracking of many types of objects,
each with a possibly different memory allocation implementation
- Safely running in multi-threaded environments
### Building
The only external requirement is [ht](https://git.zander.im/Zander671/ht). If
you build using the instructions below, CMake will automatically download and
build the dependency for you.
For multi threading support, you need a C11 compiler that supports atomic types
and has the `<threads.h>` header. Without threading support, you only need a C99
compiler.
You can build using:
```sh
cmake -B build
cmake -B build .
# replace with above with
# cmake -B build -DREFCOUNT_USE_THREADS=OFF
# to build without threads (change the "OFF" to "ON" to re-enable threads)
make -C build
```