]> Kevux Git Server - fll/commit
Update: Provide more granular error status codes in the thread full functions.
authorKevin Day <Kevin@kevux.org>
Sun, 2 Nov 2025 22:03:15 +0000 (16:03 -0600)
committerKevin Day <Kevin@kevux.org>
Sun, 2 Nov 2025 22:03:15 +0000 (16:03 -0600)
commit340d5db44872feeca8c29e970e6091f057a76aca
tree0ff4ad1426fda7ab2670565d77a101af34dd43ba
parentf7c1b1a45698712b87517aae1fb328d15a0ede91
Update: Provide more granular error status codes in the thread full functions.

The LIBC pthread implementations fail to provide a way to truly verify that thread data is properly allocated or not.

The full thread types have two different thread related memory freeing functions.
If the first function fails, then the second structure is still allocated.

The previous behavior provided no way to distinguish between the two different failures.
These more granular status codes allow for such distinction now.

This allows the caller to manually try to de-allocate other parts even if the first de-allocation failed.
44 files changed:
level_0/f_thread/c/thread/barrier_full.c
level_0/f_thread/c/thread/barrier_full.h
level_0/f_thread/c/thread/barrier_fulls.c
level_0/f_thread/c/thread/barrier_fulls.h
level_0/f_thread/c/thread/barrier_fullss.c
level_0/f_thread/c/thread/barrier_fullss.h
level_0/f_thread/c/thread/condition_full.c
level_0/f_thread/c/thread/condition_full.h
level_0/f_thread/c/thread/condition_fulls.c
level_0/f_thread/c/thread/condition_fulls.h
level_0/f_thread/c/thread/condition_fullss.c
level_0/f_thread/c/thread/condition_fullss.h
level_0/f_thread/c/thread/lock_full.c
level_0/f_thread/c/thread/lock_full.h
level_0/f_thread/c/thread/lock_fulls.c
level_0/f_thread/c/thread/lock_fulls.h
level_0/f_thread/c/thread/lock_fullss.c
level_0/f_thread/c/thread/lock_fullss.h
level_0/f_thread/c/thread/mutex_full.c
level_0/f_thread/c/thread/mutex_full.h
level_0/f_thread/c/thread/mutex_fulls.c
level_0/f_thread/c/thread/mutex_fulls.h
level_0/f_thread/c/thread/mutex_fullss.c
level_0/f_thread/c/thread/mutex_fullss.h
level_0/f_thread/tests/unit/c/test-thread-barrier_full_delete.c
level_0/f_thread/tests/unit/c/test-thread-barrier_fulls_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-barrier_fulls_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-barrier_fullss_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-barrier_fullss_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-condition_full_delete.c
level_0/f_thread/tests/unit/c/test-thread-condition_fulls_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-condition_fulls_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-condition_fullss_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-condition_fullss_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-lock_full_delete.c
level_0/f_thread/tests/unit/c/test-thread-lock_fulls_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-lock_fulls_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-lock_fullss_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-lock_fullss_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-mutex_full_delete.c
level_0/f_thread/tests/unit/c/test-thread-mutex_fulls_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-mutex_fulls_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-mutex_fullss_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-mutex_fullss_destroy_callback.c