summaryrefslogtreecommitdiffstats
path: root/include/zix
AgeCommit message (Collapse)AuthorFilesLines
2022-09-02Factor out POSIX-style return patternDavid Robillard1-0/+5
2022-09-01Simplify thread and semaphore status codesDavid Robillard3-4/+6
2022-08-19Simplify errno handlingDavid Robillard1-5/+6
2022-08-19Move sem implementation out of headerDavid Robillard2-185/+18
This avoids having platform conditionals in public headers, which causes build problems for dependants.
2022-08-18Add return status to zix_ring_mlock()David Robillard1-1/+1
2022-08-18Fix conversion warning on 32-bit ARMDavid Robillard1-2/+2
2022-08-18Add zix_sem_timed_wait()David Robillard1-1/+66
2022-08-18Fix semaphore error handlingDavid Robillard2-36/+72
Note that existing code which uses zix_sem_try_wait() may still compile against this change, but be incorrect!
2022-08-18Fix thread function attributes on WindowsDavid Robillard1-3/+2
2022-08-18Improve test coverageDavid Robillard1-6/+3
2022-08-18Fix or remove non-portable features in thread APIDavid Robillard1-18/+39
Thread function return values are inconsistent between nearly every threading API out there. So, just ignore them entirely, and provide a typedef and sentinel value so user code can be portable.
2022-08-18Factor out converting errno codes to ZixStatusDavid Robillard2-11/+6
2022-08-18Add transactional ring APIDavid Robillard1-0/+73
2022-08-12Document the thread semantics of every ring functionDavid Robillard1-15/+42
2022-06-28Fix strict release buildsDavid Robillard1-1/+1
2022-06-28Move zix_strerror to libraryDavid Robillard1-23/+6
2022-06-28Use uppercase integer literal suffixesDavid Robillard1-3/+3
I give in.
2022-06-28Fix whitespaceDavid Robillard4-11/+11
2022-06-28Fix build as C with MSVCDavid Robillard1-0/+2
2022-06-28Fix incorrect function attributesDavid Robillard2-4/+4
The ring accessors are pure, not const, because they read pointed-to data (the ring) that may change between invocations. The BTree iter comparison is const because it only compares the values passed as parameters (although they contain pointers, they aren't dereferenced).
2021-10-27Be explicit about operator precedenceDavid Robillard1-1/+1
2021-09-18Fix whitespaceDavid Robillard1-7/+5
2021-09-16Add a simple bump pointer allocatorDavid Robillard1-0/+52
2021-09-15Add redundant forward declaration to appease clang-tidyDavid Robillard1-0/+2
2021-09-14Add aligned allocation interface and use it in ZixBTreeDavid Robillard1-8/+54
2021-09-14Fix whitespace in allocator function type definitionsDavid Robillard1-12/+14
2021-09-14Make ZixAllocator a single flat structDavid Robillard5-57/+54
I can never decide between these two patterns for polymorphic objects in C, but this one seems more appropriate here since it's more conducive to inheritance.
2021-09-11Fix zix_btree_free() nullable annotationDavid Robillard1-1/+1
2021-09-10Adopt REUSE machine-readable licensing standardDavid Robillard11-165/+22
2021-09-10Add custom allocator supportDavid Robillard5-10/+170
2021-09-10Add nullability annotationsDavid Robillard8-128/+171
This allows clang to issue warnings at compile time when null is passed to a non-null parameter. For public entry points, also add assertions to catch such issues when the compiler does not support this.
2021-09-10Move attribute definitions to a separate headerDavid Robillard8-55/+87
2021-09-10Rewrite ZixHash as a flat table with open addressingDavid Robillard1-39/+238
2021-09-10Replace CRC32 digest with more modern and appropriate algorithmsDavid Robillard1-15/+59
This makes the hassle of platform-specific code go away, and instead uses portable implementations of relatively standard modern hash algorithms. CRC32 is not great as a hash function anyway, though it is very fast when hardware accelerated.
2021-09-10Add a user handle to destroy callbackDavid Robillard3-4/+9
2021-09-10Simplify BTree implementationDavid Robillard1-7/+31
2021-09-10Allow ZixBTreeIter to be allocated on the stackDavid Robillard2-41/+54
2021-09-10Remove destroy field of BTree and add zix_btree_clear()David Robillard1-3/+18
If this is used, it is only when clearing or freeing a tree. Allowing it to be given as a parameter directly there is clearer and avoids bloating the tree itself with information that isn't needed.
2021-09-10Fix conversion warningsDavid Robillard1-2/+3
2021-09-10Remove ZixStrindexDavid Robillard1-59/+0
2021-07-17Remove ZixSortedArrayDavid Robillard1-122/+0
2021-07-17Use line comments where appropriateDavid Robillard11-211/+78
2021-06-30Allow ZIX_API to be overriddenDavid Robillard1-8/+10
2020-12-31Update copyright headersDavid Robillard11-11/+11
2020-12-31Remove ZixChunkDavid Robillard1-50/+0
2020-12-31Switch to MesonDavid Robillard1-13/+6
2020-12-31Remove entire library headerDavid Robillard1-35/+0
2020-12-31Fix use of reserved identifiersDavid Robillard1-1/+1
2020-12-31Remove ZIX_PRIVATE and ZIX_INLINE mechanismsDavid Robillard1-5/+0
A normal C library ought to be good enough for anybody.
2020-12-31Separate source from headersDavid Robillard13-0/+1618