]> Kevux Git Server - fll/commit
Update: Provide "full" thread types and corrects other problems encountered.
authorKevin Day <Kevin@kevux.org>
Sat, 16 Aug 2025 05:18:09 +0000 (00:18 -0500)
committerKevin Day <Kevin@kevux.org>
Sat, 16 Aug 2025 05:18:09 +0000 (00:18 -0500)
commit45d3341ae39b9f46f757e12a835f2fa410427683
tree52e7d2a58929eede0e279645fc41c9c20c6078a0
parent8fe4a7d9eb879664126d0d0a7aa5d49609ad955e
Update: Provide "full" thread types and corrects other problems encountered.

There are new types like `f_thread_barrier_full_t` created that provide a structure of both the lock and its associated attribute variable.
For whatever reason the pthread design requires the attributes to be allocated.
This makes changing settings more complex.
These "full" types are provided to help reduce the burden of managing this mess.

I noticed a lot of random inconsistencies and other minor mistakes that I decided to simply address while working on this.
There are more things that could be done but I decided to limit myself to what is done here.

Of particular note are the attribute functions.
Several of the attribute functions were checking for error codes that do not exist as per the standard.
The attribute functions simply return fewer possible error codes that the locks.
I more than likely mass copied the locks into attributes and never corrects the dependencies.
Several of the tests were also testing these invalid status codes.
55 files changed:
level_0/f_thread/c/thread.c
level_0/f_thread/c/thread.h
level_0/f_thread/c/thread/barrier_full.c [new file with mode: 0644]
level_0/f_thread/c/thread/barrier_full.h [new file with mode: 0644]
level_0/f_thread/c/thread/condition.h
level_0/f_thread/c/thread/condition_attribute.c
level_0/f_thread/c/thread/condition_attribute.h
level_0/f_thread/c/thread/condition_full.c [new file with mode: 0644]
level_0/f_thread/c/thread/condition_full.h [new file with mode: 0644]
level_0/f_thread/c/thread/lock_attribute.c
level_0/f_thread/c/thread/lock_full.c [new file with mode: 0644]
level_0/f_thread/c/thread/lock_full.h [new file with mode: 0644]
level_0/f_thread/c/thread/mutex_attribute.c
level_0/f_thread/c/thread/mutex_full.c [new file with mode: 0644]
level_0/f_thread/c/thread/mutex_full.h [new file with mode: 0644]
level_0/f_thread/data/build/settings
level_0/f_thread/data/build/settings-mocks
level_0/f_thread/data/build/settings-tests
level_0/f_thread/tests/unit/c/test-thread-barrier_full_delete.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-barrier_full_delete.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-barrier_fulls_delete_callback.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-barrier_fulls_delete_callback.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-barrier_fulls_destroy_callback.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-barrier_fulls_destroy_callback.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-barriers_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-condition_attribute_delete.c
level_0/f_thread/tests/unit/c/test-thread-condition_attributes_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-condition_attributes_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-condition_full_delete.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-condition_full_delete.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-condition_fulls_delete_callback.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-condition_fulls_delete_callback.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-condition_fulls_destroy_callback.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-condition_fulls_destroy_callback.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-lock_attribute_delete.c
level_0/f_thread/tests/unit/c/test-thread-lock_attribute_delete.h
level_0/f_thread/tests/unit/c/test-thread-lock_attributes_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-lock_attributes_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-lock_full_delete.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-lock_full_delete.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-lock_fulls_delete_callback.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-lock_fulls_delete_callback.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-lock_fulls_destroy_callback.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-lock_fulls_destroy_callback.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-mutex_attribute_delete.c
level_0/f_thread/tests/unit/c/test-thread-mutex_attributes_delete_callback.c
level_0/f_thread/tests/unit/c/test-thread-mutex_attributes_destroy_callback.c
level_0/f_thread/tests/unit/c/test-thread-mutex_full_delete.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-mutex_full_delete.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-mutex_fulls_delete_callback.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-mutex_fulls_delete_callback.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-mutex_fulls_destroy_callback.c [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread-mutex_fulls_destroy_callback.h [new file with mode: 0644]
level_0/f_thread/tests/unit/c/test-thread.c
level_0/f_thread/tests/unit/c/test-thread.h