This structure is no longer planned to be used and supported.
The path that I am taking is now different and does not need this particular structure.
#define _di_f_thread_semaphoress_delete_callback_
#define _di_f_thread_semaphoress_destroy_callback_
#define _di_f_thread_semaphoress_t_
-#define _di_f_thread_set_t_
-#define _di_f_thread_sets_delete_callback_
-#define _di_f_thread_sets_destroy_callback_
-#define _di_f_thread_sets_t_
-#define _di_f_thread_setss_delete_callback_
-#define _di_f_thread_setss_destroy_callback_
-#define _di_f_thread_setss_t_
#define _di_f_thread_signal_mask_
#define _di_f_thread_signal_queue_
#define _di_f_thread_signal_write_
build_sources_library-thread thread/mutex.c thread/mutexs.c thread/mutexss.c thread/mutex_attribute.c thread/mutex_attributes.c thread/mutex_attributess.c thread/mutex_full.c thread/mutex_fulls.c thread/mutex_fullss.c
build_sources_library-thread thread/once.c thread/onces.c thread/oncess.c
build_sources_library-thread thread/semaphore.c thread/semaphores.c thread/semaphoress.c
-build_sources_library-thread thread/set.c thread/sets.c thread/setss.c
build_sources_library-thread thread/spin.c thread/spins.c thread/spinss.c
build_sources_headers abstruse.h abstruse/abstruse.h abstruse/enum.h abstruse/map.h abstruse/type.h
build_sources_headers-thread thread/mutex.h thread/mutexs.h thread/mutexss.h thread/mutex_attribute.h thread/mutex_attributes.h thread/mutex_attributess.h thread/mutex_full.h thread/mutex_fulls.h thread/mutex_fullss.h
build_sources_headers-thread thread/once.h thread/onces.h thread/oncess.h
build_sources_headers-thread thread/semaphore.h thread/semaphores.h thread/semaphoress.h
-build_sources_headers-thread thread/set.h thread/sets.h thread/setss.h
build_sources_headers-thread thread/spin.h thread/spins.h thread/spinss.h
build_script yes
build_sources_library-thread level_0/thread/mutex.c level_0/thread/mutexs.c level_0/thread/mutexss.c level_0/thread/mutex_attribute.c level_0/thread/mutex_attributes.c level_0/thread/mutex_attributess.c level_0/thread/mutex_full.c level_0/thread/mutex_fulls.c level_0/thread/mutex_fullss.c
build_sources_library-thread level_0/thread/once.c level_0/thread/onces.c level_0/thread/oncess.c
build_sources_library-thread level_0/thread/semaphore.c level_0/thread/semaphores.c level_0/thread/semaphoress.c
-build_sources_library-thread level_0/thread/set.c level_0/thread/sets.c level_0/thread/setss.c
build_sources_library-thread level_0/thread/spin.c level_0/thread/spins.c level_0/thread/spinss.c
build_sources_headers level_0/abstruse.h level_0/abstruse/abstruse.h level_0/abstruse/enum.h level_0/abstruse/map.h level_0/abstruse/type.h
build_sources_headers-thread level_0/thread/mutex.h level_0/thread/mutexs.h level_0/thread/mutexss.h level_0/thread/mutex_attribute.h level_0/thread/mutex_attributes.h level_0/thread/mutex_attributess.h level_0/thread/mutex_full.h level_0/thread/mutex_fulls.h level_0/thread/mutex_fullss.h
build_sources_headers-thread level_0/thread/once.h level_0/thread/onces.h level_0/thread/oncess.h
build_sources_headers-thread level_0/thread/semaphore.h level_0/thread/semaphores.h level_0/thread/semaphoress.h
-build_sources_headers-thread level_0/thread/set.h level_0/thread/sets.h level_0/thread/setss.h
build_sources_headers-thread level_0/thread/spin.h level_0/thread/spins.h level_0/thread/spinss.h
build_script yes
#define _di_f_thread_semaphoress_delete_callback_
#define _di_f_thread_semaphoress_destroy_callback_
#define _di_f_thread_semaphoress_t_
-#define _di_f_thread_set_t_
-#define _di_f_thread_sets_delete_callback_
-#define _di_f_thread_sets_destroy_callback_
-#define _di_f_thread_sets_t_
-#define _di_f_thread_setss_delete_callback_
-#define _di_f_thread_setss_destroy_callback_
-#define _di_f_thread_setss_t_
//#define _di_f_thread_signal_mask_
#define _di_f_thread_signal_queue_
#define _di_f_thread_signal_write_
build_sources_program-thread fll/level_0/thread/mutex.c fll/level_0/thread/mutexs.c fll/level_0/thread/mutexss.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/mutex_attributes.c fll/level_0/thread/mutex_attributess.c fll/level_0/thread/mutex_full.c fll/level_0/thread/mutex_fulls.c fll/level_0/thread/mutex_fullss.c
build_sources_program-thread fll/level_0/thread/once.c fll/level_0/thread/onces.c fll/level_0/thread/oncess.c
build_sources_program-thread fll/level_0/thread/semaphore.c fll/level_0/thread/semaphores.c fll/level_0/thread/semaphoress.c
-build_sources_program-thread fll/level_0/thread/set.c fll/level_0/thread/sets.c fll/level_0/thread/setss.c
build_sources_program-thread fll/level_0/thread/spin.c fll/level_0/thread/spins.c fll/level_0/thread/spinss.c
build_sources_program fll/level_1/conversion.c fll/level_1/private-conversion.c fll/level_1/conversion/common.c
#define _di_f_thread_semaphoress_delete_callback_
#define _di_f_thread_semaphoress_destroy_callback_
#define _di_f_thread_semaphoress_t_
-#define _di_f_thread_set_t_
-#define _di_f_thread_sets_delete_callback_
-#define _di_f_thread_sets_destroy_callback_
-#define _di_f_thread_sets_t_
-#define _di_f_thread_setss_delete_callback_
-#define _di_f_thread_setss_destroy_callback_
-#define _di_f_thread_setss_t_
//#define _di_f_thread_signal_mask_
#define _di_f_thread_signal_queue_
#define _di_f_thread_signal_write_
build_sources_program-thread fll/level_0/thread/mutex.c fll/level_0/thread/mutexs.c fll/level_0/thread/mutexss.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/mutex_attributes.c fll/level_0/thread/mutex_attributess.c fll/level_0/thread/mutex_full.c fll/level_0/thread/mutex_fulls.c fll/level_0/thread/mutex_fullss.c
build_sources_program-thread fll/level_0/thread/once.c fll/level_0/thread/onces.c fll/level_0/thread/oncess.c
build_sources_program-thread fll/level_0/thread/semaphore.c fll/level_0/thread/semaphores.c fll/level_0/thread/semaphoress.c
-build_sources_program-thread fll/level_0/thread/set.c fll/level_0/thread/sets.c fll/level_0/thread/setss.c
build_sources_program-thread fll/level_0/thread/spin.c fll/level_0/thread/spins.c fll/level_0/thread/spinss.c
build_sources_program fll/level_1/print.c fll/level_1/private-print.c fll/level_1/print/common.c
#define _di_f_thread_semaphoress_delete_callback_
#define _di_f_thread_semaphoress_destroy_callback_
#define _di_f_thread_semaphoress_t_
-#define _di_f_thread_set_t_
-#define _di_f_thread_sets_delete_callback_
-#define _di_f_thread_sets_destroy_callback_
-#define _di_f_thread_sets_t_
-#define _di_f_thread_setss_delete_callback_
-#define _di_f_thread_setss_destroy_callback_
-#define _di_f_thread_setss_t_
//#define _di_f_thread_signal_mask_
#define _di_f_thread_signal_queue_
#define _di_f_thread_signal_write_
build_sources_program-thread fll/level_0/thread/mutex.c fll/level_0/thread/mutexs.c fll/level_0/thread/mutexss.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/mutex_attributes.c fll/level_0/thread/mutex_attributess.c fll/level_0/thread/mutex_full.c fll/level_0/thread/mutex_fulls.c fll/level_0/thread/mutex_fullss.c
build_sources_program-thread fll/level_0/thread/once.c fll/level_0/thread/onces.c fll/level_0/thread/oncess.c
build_sources_program-thread fll/level_0/thread/semaphore.c fll/level_0/thread/semaphores.c fll/level_0/thread/semaphoress.c
-build_sources_program-thread fll/level_0/thread/set.c fll/level_0/thread/sets.c fll/level_0/thread/setss.c
build_sources_program-thread fll/level_0/thread/spin.c fll/level_0/thread/spins.c fll/level_0/thread/spinss.c
build_sources_program fll/level_1/control_group.c
#define _di_f_thread_semaphoress_delete_callback_
#define _di_f_thread_semaphoress_destroy_callback_
#define _di_f_thread_semaphoress_t_
-#define _di_f_thread_set_t_
-#define _di_f_thread_sets_delete_callback_
-#define _di_f_thread_sets_destroy_callback_
-#define _di_f_thread_sets_t_
-#define _di_f_thread_setss_delete_callback_
-#define _di_f_thread_setss_destroy_callback_
-#define _di_f_thread_setss_t_
//#define _di_f_thread_signal_mask_
#define _di_f_thread_signal_queue_
#define _di_f_thread_signal_write_
build_sources_program-thread fll/level_0/thread/mutex.c fll/level_0/thread/mutexs.c fll/level_0/thread/mutexss.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/mutex_attributes.c fll/level_0/thread/mutex_attributess.c fll/level_0/thread/mutex_full.c fll/level_0/thread/mutex_fulls.c fll/level_0/thread/mutex_fullss.c
build_sources_program-thread fll/level_0/thread/once.c fll/level_0/thread/onces.c fll/level_0/thread/oncess.c
build_sources_program-thread fll/level_0/thread/semaphore.c fll/level_0/thread/semaphores.c fll/level_0/thread/semaphoress.c
-build_sources_program-thread fll/level_0/thread/set.c fll/level_0/thread/sets.c fll/level_0/thread/setss.c
build_sources_program-thread fll/level_0/thread/spin.c fll/level_0/thread/spins.c fll/level_0/thread/spinss.c
build_sources_program fll/level_1/control_group.c
#define _di_f_thread_semaphoress_delete_callback_
#define _di_f_thread_semaphoress_destroy_callback_
#define _di_f_thread_semaphoress_t_
-#define _di_f_thread_set_t_
-#define _di_f_thread_sets_delete_callback_
-#define _di_f_thread_sets_destroy_callback_
-#define _di_f_thread_sets_t_
-#define _di_f_thread_setss_delete_callback_
-#define _di_f_thread_setss_destroy_callback_
-#define _di_f_thread_setss_t_
//#define _di_f_thread_signal_mask_
#define _di_f_thread_signal_queue_
#define _di_f_thread_signal_write_
build_sources_program-thread fll/level_0/thread/mutex.c fll/level_0/thread/mutexs.c fll/level_0/thread/mutexss.c fll/level_0/thread/mutex_attribute.c fll/level_0/thread/mutex_attributes.c fll/level_0/thread/mutex_attributess.c fll/level_0/thread/mutex_full.c fll/level_0/thread/mutex_fulls.c fll/level_0/thread/mutex_fullss.c
build_sources_program-thread fll/level_0/thread/once.c fll/level_0/thread/onces.c fll/level_0/thread/oncess.c
build_sources_program-thread fll/level_0/thread/semaphore.c fll/level_0/thread/semaphores.c fll/level_0/thread/semaphoress.c
-build_sources_program-thread fll/level_0/thread/set.c fll/level_0/thread/sets.c fll/level_0/thread/setss.c
build_sources_program-thread fll/level_0/thread/spin.c fll/level_0/thread/spins.c fll/level_0/thread/spinss.c
build_sources_program fll/level_1/conversion.c fll/level_1/private-conversion.c fll/level_1/conversion/common.c
array ./fll/level_0/thread/oncess.h 29;" member struct:__anon45774f8d0108 typeref:typename:f_thread_onces_t *
array ./fll/level_0/thread/semaphores.h 29;" member struct:__anonb788c8590108 typeref:typename:f_thread_semaphore_t *
array ./fll/level_0/thread/semaphoress.h 29;" member struct:__anona8a2f1ec0108 typeref:typename:f_thread_semaphores_t *
-array ./fll/level_0/thread/sets.h 29;" member struct:__anon8290da810108 typeref:typename:f_thread_set_t *
-array ./fll/level_0/thread/setss.h 29;" member struct:__anond4ad49140108 typeref:typename:f_thread_sets_t *
array ./fll/level_0/thread/spins.h 29;" member struct:__anoned8c3c8f0108 typeref:typename:f_thread_spin_t *
array ./fll/level_0/thread/spinss.h 29;" member struct:__anon9f14ece20108 typeref:typename:f_thread_spins_t *
array ./fll/level_0/type/cell.h 49;" member struct:__anonddbaf18c0208 typeref:typename:f_cell_t *
attribute ./fll/level_0/thread/condition_full.h 29;" member struct:__anon6e55af5b0108 typeref:typename:f_thread_condition_attribute_t
attribute ./fll/level_0/thread/lock_full.h 29;" member struct:__anon725eaedd0108 typeref:typename:f_thread_lock_attribute_t
attribute ./fll/level_0/thread/mutex_full.h 29;" member struct:__anon6e59c1070108 typeref:typename:f_thread_mutex_attribute_t
-attribute ./fll/level_0/thread/set.h 29;" member struct:__anonb661724e0108 typeref:typename:f_thread_attribute_t
ax25 ./fll/level_0/socket/address.h 130;" member union:__anonad205339020a typeref:struct:sockaddr_ax25
a_dynamic ./fll/level_0/abstruse/type.h 45;" member union:__anonff1c7b35010a typeref:typename:f_string_dynamic_t
a_dynamics ./fll/level_0/abstruse/type.h 46;" member union:__anonff1c7b35010a typeref:typename:f_string_dynamics_t
f_thread_attribute_stack_size_set ./fll/level_0/thread/attribute.h 597;" prototype typeref:typename:f_status_t signature:(const size_t stack_size,f_thread_attribute_t * const attribute)
f_thread_attribute_t ./fll/level_0/thread/attribute.h 23;" typedef typeref:typename:pthread_attr_t
f_thread_attribute_t_initialize ./fll/level_0/thread/attribute.h 25;" macro
-f_thread_at_fork ./fll/level_0/thread.h 129;" prototype typeref:typename:f_status_t signature:(const f_void_call_t before,const f_void_call_t after_parent,const f_void_call_t after_child)
+f_thread_at_fork ./fll/level_0/thread.h 126;" prototype typeref:typename:f_status_t signature:(const f_void_call_t before,const f_void_call_t after_parent,const f_void_call_t after_child)
f_thread_barrierss_delete_callback ./fll/level_0/thread/barrierss.h 71;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_barrierss_destroy_callback ./fll/level_0/thread/barrierss.h 104;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_barrierss_t ./fll/level_0/thread/barrierss.h 33;" typedef typeref:struct:__anon4c81fd8f0108
f_thread_barrier_t ./fll/level_0/thread/barrier.h 23;" typedef typeref:typename:pthread_barrier_t
f_thread_barrier_t_initialize ./fll/level_0/thread/barrier.h 25;" macro
f_thread_barrier_wait ./fll/level_0/thread/barrier.h 108;" prototype typeref:typename:f_status_t signature:(f_thread_barrier_t * const barrier,int * const result)
-f_thread_caller ./fll/level_0/thread.h 141;" prototype typeref:typename:f_thread_id_t signature:(void)
-f_thread_cancel ./fll/level_0/thread.h 160;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id)
+f_thread_caller ./fll/level_0/thread.h 138;" prototype typeref:typename:f_thread_id_t signature:(void)
+f_thread_cancel ./fll/level_0/thread.h 157;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id)
f_thread_cancel_asynchronous_d ./fll/level_0/thread/common.h 29;" macro
f_thread_cancel_defer_d ./fll/level_0/thread/common.h 30;" macro
f_thread_cancel_disable_d ./fll/level_0/thread/common.h 31;" macro
f_thread_cancel_enable_d ./fll/level_0/thread/common.h 32;" macro
-f_thread_cancel_state_set ./fll/level_0/thread.h 183;" prototype typeref:typename:f_status_t signature:(const int state,int * const previous)
-f_thread_cancel_test ./fll/level_0/thread.h 198;" prototype typeref:typename:f_status_t signature:(void)
-f_thread_cancel_type_set ./fll/level_0/thread.h 222;" prototype typeref:typename:f_status_t signature:(const int type,int * const previous)
-f_thread_clock_get_id ./fll/level_0/thread.h 246;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id_thread,clockid_t * const id_clock)
-f_thread_compare ./fll/level_0/thread.h 262;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id1,const f_thread_id_t id2)
+f_thread_cancel_state_set ./fll/level_0/thread.h 180;" prototype typeref:typename:f_status_t signature:(const int state,int * const previous)
+f_thread_cancel_test ./fll/level_0/thread.h 195;" prototype typeref:typename:f_status_t signature:(void)
+f_thread_cancel_type_set ./fll/level_0/thread.h 219;" prototype typeref:typename:f_status_t signature:(const int type,int * const previous)
+f_thread_clock_get_id ./fll/level_0/thread.h 243;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id_thread,clockid_t * const id_clock)
+f_thread_compare ./fll/level_0/thread.h 259;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id1,const f_thread_id_t id2)
f_thread_conditionss_delete_callback ./fll/level_0/thread/conditionss.h 71;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_conditionss_destroy_callback ./fll/level_0/thread/conditionss.h 104;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_conditionss_t ./fll/level_0/thread/conditionss.h 33;" typedef typeref:struct:__anon3d2541ef0108
f_thread_condition_t_initialize ./fll/level_0/thread/condition.h 28;" macro
f_thread_condition_wait ./fll/level_0/thread/condition.h 146;" prototype typeref:typename:f_status_t signature:(f_thread_condition_t * const condition,f_thread_mutex_t * const mutex)
f_thread_condition_wait_timed ./fll/level_0/thread/condition.h 184;" prototype typeref:typename:f_status_t signature:(const f_time_spec_t * const wait,f_thread_condition_t * const condition,f_thread_mutex_t * const mutex)
-f_thread_create ./fll/level_0/thread.h 296;" prototype typeref:typename:f_status_t signature:(const f_thread_attribute_t * const attribute,f_thread_id_t * const id,const f_void_pointer_call_t routine,void * const argument)
-f_thread_detach ./fll/level_0/thread.h 322;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id)
-f_thread_exit ./fll/level_0/thread.h 341;" prototype typeref:typename:f_status_t signature:(int * const result)
+f_thread_create ./fll/level_0/thread.h 293;" prototype typeref:typename:f_status_t signature:(const f_thread_attribute_t * const attribute,f_thread_id_t * const id,const f_void_pointer_call_t routine,void * const argument)
+f_thread_detach ./fll/level_0/thread.h 319;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id)
+f_thread_exit ./fll/level_0/thread.h 338;" prototype typeref:typename:f_status_t signature:(int * const result)
f_thread_idss_delete_callback ./fll/level_0/thread/idss.h 68;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_idss_destroy_callback ./fll/level_0/thread/idss.h 98;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_idss_t ./fll/level_0/thread/idss.h 33;" typedef typeref:struct:__anon6b2a9f550108
f_thread_ids_t_initialize ./fll/level_0/thread/ids.h 35;" macro
f_thread_id_t ./fll/level_0/thread/id.h 23;" typedef typeref:typename:pthread_t
f_thread_id_t_initialize ./fll/level_0/thread/id.h 25;" macro
-f_thread_join ./fll/level_0/thread.h 370;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,void ** const result)
-f_thread_join_timed ./fll/level_0/thread.h 435;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const f_time_spec_t wait,void ** const result)
-f_thread_join_try ./fll/level_0/thread.h 400;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,void ** const result)
+f_thread_join ./fll/level_0/thread.h 367;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,void ** const result)
+f_thread_join_timed ./fll/level_0/thread.h 432;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const f_time_spec_t wait,void ** const result)
+f_thread_join_try ./fll/level_0/thread.h 397;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,void ** const result)
f_thread_keyss_delete_callback ./fll/level_0/thread/keyss.h 68;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_keyss_destroy_callback ./fll/level_0/thread/keyss.h 98;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_keyss_t ./fll/level_0/thread/keyss.h 33;" typedef typeref:struct:__anon6d35dd910108
f_thread_mutex_attribute_type_get ./fll/level_0/thread/mutex_attribute.h 299;" prototype typeref:typename:f_status_t signature:(const f_thread_mutex_attribute_t * const attribute,int * const type)
f_thread_mutex_attribute_type_set ./fll/level_0/thread/mutex_attribute.h 322;" prototype typeref:typename:f_status_t signature:(const int type,f_thread_mutex_attribute_t * const attribute)
f_thread_mutex_attribute_t_initialize ./fll/level_0/thread/mutex_attribute.h 25;" macro
-f_thread_mutex_consistent ./fll/level_0/thread/mutex.h 70;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
-f_thread_mutex_create ./fll/level_0/thread/mutex.h 98;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_attribute_t * const attribute,f_thread_mutex_t * const mutex)
-f_thread_mutex_delete ./fll/level_0/thread/mutex.h 123;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
+f_thread_mutex_consistent ./fll/level_0/thread/mutex.h 58;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
+f_thread_mutex_create ./fll/level_0/thread/mutex.h 86;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_attribute_t * const attribute,f_thread_mutex_t * const mutex)
+f_thread_mutex_delete ./fll/level_0/thread/mutex.h 111;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
f_thread_mutex_fullss_delete_callback ./fll/level_0/thread/mutex_fullss.h 72;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_mutex_fullss_destroy_callback ./fll/level_0/thread/mutex_fullss.h 106;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_mutex_fullss_t ./fll/level_0/thread/mutex_fullss.h 33;" typedef typeref:struct:__anon6bf42a0d0108
f_thread_mutex_full_delete ./fll/level_0/thread/mutex_full.h 60;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_full_t * const full)
f_thread_mutex_full_t ./fll/level_0/thread/mutex_full.h 30;" typedef typeref:struct:__anon6e59c1070108
f_thread_mutex_full_t_initialize ./fll/level_0/thread/mutex_full.h 32;" macro
-f_thread_mutex_lock ./fll/level_0/thread/mutex.h 230;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
-f_thread_mutex_lock_timed ./fll/level_0/thread/mutex.h 265;" prototype typeref:typename:f_status_t signature:(const f_time_spec_t * const timeout,f_thread_mutex_t * const mutex)
-f_thread_mutex_lock_try ./fll/level_0/thread/mutex.h 294;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
-f_thread_mutex_priority_ceiling_get ./fll/level_0/thread/mutex.h 149;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex,int * const ceiling)
-f_thread_mutex_priority_ceiling_set ./fll/level_0/thread/mutex.h 181;" prototype typeref:typename:f_status_t signature:(const int ceiling,f_thread_mutex_t * const mutex,int * const previous)
+f_thread_mutex_lock ./fll/level_0/thread/mutex.h 218;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
+f_thread_mutex_lock_timed ./fll/level_0/thread/mutex.h 253;" prototype typeref:typename:f_status_t signature:(const f_time_spec_t * const timeout,f_thread_mutex_t * const mutex)
+f_thread_mutex_lock_try ./fll/level_0/thread/mutex.h 282;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
+f_thread_mutex_priority_ceiling_get ./fll/level_0/thread/mutex.h 137;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex,int * const ceiling)
+f_thread_mutex_priority_ceiling_set ./fll/level_0/thread/mutex.h 169;" prototype typeref:typename:f_status_t signature:(const int ceiling,f_thread_mutex_t * const mutex,int * const previous)
f_thread_mutex_protocol_inherit_d ./fll/level_0/thread/common.h 44;" macro
f_thread_mutex_protocol_none_d ./fll/level_0/thread/common.h 45;" macro
f_thread_mutex_protocol_protect_d ./fll/level_0/thread/common.h 46;" macro
-f_thread_mutex_robust_d ./fll/level_0/thread/mutex.h 27;" macro
f_thread_mutex_robust_okay_d ./fll/level_0/thread/common.h 57;" macro
f_thread_mutex_robust_stalled_d ./fll/level_0/thread/common.h 58;" macro
-f_thread_mutex_stalled_d ./fll/level_0/thread/mutex.h 28;" macro
-f_thread_mutex_t ./fll/level_0/thread/mutex.h 40;" typedef typeref:typename:pthread_mutex_t
+f_thread_mutex_t ./fll/level_0/thread/mutex.h 28;" typedef typeref:typename:pthread_mutex_t
f_thread_mutex_type_error_check_d ./fll/level_0/thread/common.h 70;" macro
f_thread_mutex_type_normal_d ./fll/level_0/thread/common.h 71;" macro
f_thread_mutex_type_recursive_d ./fll/level_0/thread/common.h 72;" macro
-f_thread_mutex_t_initialize ./fll/level_0/thread/mutex.h 42;" macro
-f_thread_mutex_unlock ./fll/level_0/thread/mutex.h 203;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
-f_thread_name_get ./fll/level_0/thread.h 499;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,f_string_static_t * const name)
-f_thread_name_set ./fll/level_0/thread.h 463;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const f_string_static_t name)
+f_thread_mutex_t_initialize ./fll/level_0/thread/mutex.h 30;" macro
+f_thread_mutex_unlock ./fll/level_0/thread/mutex.h 191;" prototype typeref:typename:f_status_t signature:(f_thread_mutex_t * const mutex)
+f_thread_name_get ./fll/level_0/thread.h 496;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,f_string_static_t * const name)
+f_thread_name_set ./fll/level_0/thread.h 460;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const f_string_static_t name)
F_thread_not ./fll/level_0/status.h 783;" enumerator enum:__anon8ec9ccff0103
f_thread_once ./fll/level_0/thread/once.h 54;" prototype typeref:typename:f_status_t signature:(const f_void_call_t routine,f_thread_once_t * const once)
f_thread_oncess_t ./fll/level_0/thread/oncess.h 33;" typedef typeref:struct:__anon45774f8d0108
f_thread_once_t_initialize ./fll/level_0/thread/once.h 27;" macro
f_thread_process_private_d ./fll/level_0/thread/common.h 83;" macro
f_thread_process_shared_d ./fll/level_0/thread/common.h 84;" macro
-f_thread_scheduler_parameter_get ./fll/level_0/thread.h 525;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,int * const policy,struct sched_param * const parameter)
-f_thread_scheduler_parameter_set ./fll/level_0/thread.h 550;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const int policy,const struct sched_param * const parameter)
-f_thread_scheduler_priority_set ./fll/level_0/thread.h 573;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const int priority)
+f_thread_scheduler_parameter_get ./fll/level_0/thread.h 522;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,int * const policy,struct sched_param * const parameter)
+f_thread_scheduler_parameter_set ./fll/level_0/thread.h 547;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const int policy,const struct sched_param * const parameter)
+f_thread_scheduler_priority_set ./fll/level_0/thread.h 570;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const int priority)
f_thread_schedule_explicit_d ./fll/level_0/thread/common.h 95;" macro
f_thread_schedule_inherit_d ./fll/level_0/thread/common.h 96;" macro
f_thread_scope_process_d ./fll/level_0/thread/common.h 107;" macro
f_thread_semaphore_t_initialize ./fll/level_0/thread/semaphore.h 29;" macro
f_thread_semaphore_unlock ./fll/level_0/thread/semaphore.h 284;" prototype typeref:typename:f_status_t signature:(f_thread_semaphore_t * const semaphore)
f_thread_semaphore_value_get ./fll/level_0/thread/semaphore.h 309;" prototype typeref:typename:f_status_t signature:(f_thread_semaphore_t * const semaphore,int * const value)
-f_thread_setss_delete_callback ./fll/level_0/thread/setss.h 68;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
-f_thread_setss_destroy_callback ./fll/level_0/thread/setss.h 98;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
-f_thread_setss_t ./fll/level_0/thread/setss.h 33;" typedef typeref:struct:__anond4ad49140108
-f_thread_setss_t_initialize ./fll/level_0/thread/setss.h 35;" macro
-f_thread_sets_delete_callback ./fll/level_0/thread/sets.h 68;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
-f_thread_sets_destroy_callback ./fll/level_0/thread/sets.h 98;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
-f_thread_sets_t ./fll/level_0/thread/sets.h 33;" typedef typeref:struct:__anon8290da810108
-f_thread_sets_t_initialize ./fll/level_0/thread/sets.h 35;" macro
-f_thread_set_t ./fll/level_0/thread/set.h 32;" typedef typeref:struct:__anonb661724e0108
-f_thread_set_t_initialize ./fll/level_0/thread/set.h 34;" macro
-f_thread_signal_mask ./fll/level_0/thread.h 603;" prototype typeref:typename:f_status_t signature:(const int how,const sigset_t * const next,sigset_t * const current)
-f_thread_signal_queue ./fll/level_0/thread.h 629;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const int signal,const union sigval value)
-f_thread_signal_write ./fll/level_0/thread.h 652;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const int signal)
+f_thread_signal_mask ./fll/level_0/thread.h 600;" prototype typeref:typename:f_status_t signature:(const int how,const sigset_t * const next,sigset_t * const current)
+f_thread_signal_queue ./fll/level_0/thread.h 626;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const int signal,const union sigval value)
+f_thread_signal_write ./fll/level_0/thread.h 649;" prototype typeref:typename:f_status_t signature:(const f_thread_id_t id,const int signal)
f_thread_spinss_delete_callback ./fll/level_0/thread/spinss.h 68;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_spinss_destroy_callback ./fll/level_0/thread/spinss.h 98;" prototype typeref:typename:f_status_t signature:(const f_number_unsigned_t start,const f_number_unsigned_t stop,void * const array)
f_thread_spinss_t ./fll/level_0/thread/spinss.h 33;" typedef typeref:struct:__anon9f14ece20108
f_thread_spin_t ./fll/level_0/thread/spin.h 25;" typedef typeref:typename:pthread_spinlock_t
f_thread_spin_t_initialize ./fll/level_0/thread/spin.h 27;" macro
f_thread_spin_unlock ./fll/level_0/thread/spin.h 154;" prototype typeref:typename:f_status_t signature:(f_thread_spin_t * const spin)
-f_thread_unlock ./fll/level_0/thread.h 675;" prototype typeref:typename:f_status_t signature:(f_thread_lock_t * const lock)
+f_thread_unlock ./fll/level_0/thread.h 672;" prototype typeref:typename:f_status_t signature:(f_thread_lock_t * const lock)
F_time ./fll/level_0/status.h 784;" enumerator enum:__anon8ec9ccff0103
f_time_calendar_string ./fll/level_0/time.h 54;" prototype typeref:typename:f_status_t signature:(const time_t time,f_string_dynamic_t * const destination)
F_time_calendar_string_length_d ./fll/level_0/time/common.h 26;" macro
i ./fll/level_1/fss/payload/type.h 40;" member struct:__anon28118cd20108 typeref:typename:f_number_unsigned_t
id ./fll/level_0/signal/common.h 30;" member struct:__anon9f03da110108 typeref:typename:int
id ./fll/level_0/socket/socket.h 42;" member struct:__anon1496783c0108 typeref:typename:int
-id ./fll/level_0/thread/set.h 30;" member struct:__anonb661724e0108 typeref:typename:f_thread_id_t
id ./fll/level_0/type/file.h 162;" member struct:__anone502afac0108 typeref:typename:int
id_data ./fll/level_0/socket/socket.h 43;" member struct:__anon1496783c0108 typeref:typename:int
id_group ./fll/level_0/account/common.h 46;" member struct:__anon047ec6200108 typeref:typename:f_gid_t
macro_f_thread_mutex_fulls_t_initialize_1 ./fll/level_0/thread/mutex_fulls.h 37;" macro signature:(array,size,used)
macro_f_thread_mutex_fulls_t_initialize_2 ./fll/level_0/thread/mutex_fulls.h 38;" macro signature:(array,length)
macro_f_thread_mutex_full_t_initialize_1 ./fll/level_0/thread/mutex_full.h 34;" macro signature:(mutex,attribute)
-macro_f_thread_mutex_t_initialize_1 ./fll/level_0/thread/mutex.h 44;" macro signature:(mutex)
+macro_f_thread_mutex_t_initialize_1 ./fll/level_0/thread/mutex.h 32;" macro signature:(mutex)
macro_f_thread_oncess_t_initialize_1 ./fll/level_0/thread/oncess.h 37;" macro signature:(array,size,used)
macro_f_thread_oncess_t_initialize_2 ./fll/level_0/thread/oncess.h 38;" macro signature:(array,length)
macro_f_thread_onces_t_initialize_1 ./fll/level_0/thread/onces.h 37;" macro signature:(array,size,used)
macro_f_thread_semaphores_t_initialize_1 ./fll/level_0/thread/semaphores.h 37;" macro signature:(array,size,used)
macro_f_thread_semaphores_t_initialize_2 ./fll/level_0/thread/semaphores.h 38;" macro signature:(array,length)
macro_f_thread_semaphore_t_initialize_1 ./fll/level_0/thread/semaphore.h 31;" macro signature:(semaphore)
-macro_f_thread_setss_t_initialize_1 ./fll/level_0/thread/setss.h 37;" macro signature:(array,size,used)
-macro_f_thread_setss_t_initialize_2 ./fll/level_0/thread/setss.h 38;" macro signature:(array,length)
-macro_f_thread_sets_t_initialize_1 ./fll/level_0/thread/sets.h 37;" macro signature:(array,size,used)
-macro_f_thread_sets_t_initialize_2 ./fll/level_0/thread/sets.h 38;" macro signature:(array,length)
-macro_f_thread_set_t_clear ./fll/level_0/thread/set.h 38;" macro signature:(thread)
-macro_f_thread_set_t_initialize_1 ./fll/level_0/thread/set.h 36;" macro signature:(attribute,id,result)
macro_f_thread_spinss_t_initialize_1 ./fll/level_0/thread/spinss.h 37;" macro signature:(array,size,used)
macro_f_thread_spinss_t_initialize_2 ./fll/level_0/thread/spinss.h 38;" macro signature:(array,length)
macro_f_thread_spins_t_initialize_1 ./fll/level_0/thread/spins.h 37;" macro signature:(array,size,used)
reset ./fll/level_0/color/common.h 929;" member struct:__anon237c77920708 typeref:typename:f_string_dynamic_t
result ./fll/level_0/console/common.h 330;" member struct:__anon2074bb260408 typeref:typename:f_console_result_t
result ./fll/level_0/console/common.h 395;" member struct:__anon2074bb260508 typeref:typename:f_console_result_t
-result ./fll/level_0/thread/set.h 31;" member struct:__anonb661724e0108 typeref:typename:int
reverse ./fll/level_0/color/common.h 513;" member struct:__anon237c77920408 typeref:typename:f_string_static_t
row ./fll/level_0/type/cell.h 28;" member struct:__anonddbaf18c0108 typeref:typename:f_number_unsigned_t
scheduler ./fll/level_1/execute/common.h 101;" member struct:__anon29df40670208 typeref:typename:f_execute_scheduler_t *
size ./fll/level_0/thread/oncess.h 31;" member struct:__anon45774f8d0108 typeref:typename:f_number_unsigned_t
size ./fll/level_0/thread/semaphores.h 31;" member struct:__anonb788c8590108 typeref:typename:f_number_unsigned_t
size ./fll/level_0/thread/semaphoress.h 31;" member struct:__anona8a2f1ec0108 typeref:typename:f_number_unsigned_t
-size ./fll/level_0/thread/sets.h 31;" member struct:__anon8290da810108 typeref:typename:f_number_unsigned_t
-size ./fll/level_0/thread/setss.h 31;" member struct:__anond4ad49140108 typeref:typename:f_number_unsigned_t
size ./fll/level_0/thread/spins.h 31;" member struct:__anoned8c3c8f0108 typeref:typename:f_number_unsigned_t
size ./fll/level_0/thread/spinss.h 31;" member struct:__anon9f14ece20108 typeref:typename:f_number_unsigned_t
size ./fll/level_0/type/cell.h 51;" member struct:__anonddbaf18c0208 typeref:typename:f_number_unsigned_t
used ./fll/level_0/thread/oncess.h 32;" member struct:__anon45774f8d0108 typeref:typename:f_number_unsigned_t
used ./fll/level_0/thread/semaphores.h 32;" member struct:__anonb788c8590108 typeref:typename:f_number_unsigned_t
used ./fll/level_0/thread/semaphoress.h 32;" member struct:__anona8a2f1ec0108 typeref:typename:f_number_unsigned_t
-used ./fll/level_0/thread/sets.h 32;" member struct:__anon8290da810108 typeref:typename:f_number_unsigned_t
-used ./fll/level_0/thread/setss.h 32;" member struct:__anond4ad49140108 typeref:typename:f_number_unsigned_t
used ./fll/level_0/thread/spins.h 32;" member struct:__anoned8c3c8f0108 typeref:typename:f_number_unsigned_t
used ./fll/level_0/thread/spinss.h 32;" member struct:__anon9f14ece20108 typeref:typename:f_number_unsigned_t
used ./fll/level_0/type/cell.h 52;" member struct:__anonddbaf18c0208 typeref:typename:f_number_unsigned_t
_F_thread_semaphoress_h ./fll/level_0/thread/semaphoress.h 13;" macro
_F_thread_semaphores_h ./fll/level_0/thread/semaphores.h 13;" macro
_F_thread_semaphore_h ./fll/level_0/thread/semaphore.h 13;" macro
-_F_thread_setss_h ./fll/level_0/thread/setss.h 13;" macro
-_F_thread_sets_h ./fll/level_0/thread/sets.h 13;" macro
-_F_thread_set_h ./fll/level_0/thread/set.h 13;" macro
_F_thread_spinss_h ./fll/level_0/thread/spinss.h 13;" macro
_F_thread_spins_h ./fll/level_0/thread/spins.h 13;" macro
_F_thread_spin_h ./fll/level_0/thread/spin.h 13;" macro
__anon80cc46450108 ./fll/level_0/fss/item.h 37;" struct
__anon80cc46450208 ./fll/level_0/fss/item.h 90;" struct
__anon80cc46450308 ./fll/level_0/fss/item.h 112;" struct
-__anon8290da810108 ./fll/level_0/thread/sets.h 28;" struct
__anon84ebe5630108 ./fll/level_0/thread/lock_fullss.h 28;" struct
__anon852d27210108 ./fll/level_0/utf/map_multi.h 27;" struct
__anon85397ea70108 ./fll/level_0/utf/map_multiss.h 28;" struct
__anonb52290970108 ./fll/level_0/string/tripless.h 28;" struct
__anonb5abeca20108 ./fll/level_0/thread/ids.h 28;" struct
__anonb6427d8f0108 ./fll/level_0/utf/tripless.h 28;" struct
-__anonb661724e0108 ./fll/level_0/thread/set.h 28;" struct
__anonb788c8590108 ./fll/level_0/thread/semaphores.h 28;" struct
__anonb7e9bda40108 ./fll/level_0/string/triples.h 28;" struct
__anonb9e135690108 ./fll/level_0/thread/attributes.h 28;" struct
__anonce18a0b10108 ./fll/level_0/thread/lockss.h 28;" struct
__anoncff1327e0108 ./fll/level_0/thread/locks.h 28;" struct
__anond18069000108 ./fll/level_0/control_group/common.h 60;" struct
-__anond4ad49140108 ./fll/level_0/thread/setss.h 28;" struct
__anond4c904cb0108 ./fll/level_0/type/quantity.h 33;" struct
__anond4c904cb0208 ./fll/level_0/type/quantity.h 52;" struct
__anond4c904cb0308 ./fll/level_0/type/quantity.h 74;" struct
#include <fll/level_0/thread/semaphore.h>
#include <fll/level_0/thread/semaphores.h>
#include <fll/level_0/thread/semaphoress.h>
-#include <fll/level_0/thread/set.h>
-#include <fll/level_0/thread/sets.h>
-#include <fll/level_0/thread/setss.h>
#include <fll/level_0/thread/spin.h>
#include <fll/level_0/thread/spins.h>
#include <fll/level_0/thread/spinss.h>
+++ /dev/null
-#include "../thread.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
+++ /dev/null
-/**
- * FLL - Level 0
- *
- * Project: Thread
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Defines common data to be used for/by POSIX thread related functionality.
- *
- * This is auto-included by thread.h and should not need to be explicitly included.
- */
-#ifndef _F_thread_set_h
-#define _F_thread_set_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * A structure containing basic thread information.
- *
- * Properties:
- * - attribute: The thread attributes (which is a union).
- * - id: The thread identifier.
- * - result: The result of the thread on exit.
- */
-#ifndef _di_f_thread_set_t_
- typedef struct {
- f_thread_attribute_t attribute;
- f_thread_id_t id;
- int result;
- } f_thread_set_t;
-
- #define f_thread_set_t_initialize { 0 }
-
- #define macro_f_thread_set_t_initialize_1(attribute, id, result) { attribute, id, result }
-
- #define macro_f_thread_set_t_clear(thread) \
- macro_f_thread_attribute_t_clear(thread.attribute) \
- macro_f_thread_id_t_clear(thread.id) \
- result = 0;
-#endif // _di_f_thread_set_t_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _F_thread_set_h
+++ /dev/null
-#include "../thread.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_f_thread_sets_delete_callback_
- f_status_t f_thread_sets_delete_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const void_array) {
-
- f_thread_set_t * const array = (f_thread_set_t *) void_array;
-
- for (f_number_unsigned_t i = start; i < stop; ++i) {
- if (pthread_attr_destroy(&array[i].attribute)) return F_status_set_error(F_failure);
- } // for
-
- return F_okay;
- }
-#endif // _di_f_thread_sets_delete_callback_
-
-#ifndef _di_f_thread_sets_destroy_callback_
- f_status_t f_thread_sets_destroy_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const void_array) {
-
- f_thread_set_t * const array = (f_thread_set_t *) void_array;
-
- for (f_number_unsigned_t i = start; i < stop; ++i) {
- if (pthread_attr_destroy(&array[i].attribute)) return F_status_set_error(F_failure);
- } // for
-
- return F_okay;
- }
-#endif // _di_f_thread_sets_destroy_callback_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
+++ /dev/null
-/**
- * FLL - Level 0
- *
- * Project: Thread
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Defines common data to be used for/by POSIX thread related functionality.
- *
- * This is auto-included by thread.h and should not need to be explicitly included.
- */
-#ifndef _F_thread_sets_h
-#define _F_thread_sets_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * An array of f_thread_set_t.
- *
- * Properties:
- * - array: The array of f_thread_set_t.
- * - size: Total amount of allocated space.
- * - used: Total number of allocated spaces used.
- */
-#ifndef _di_f_thread_sets_t_
- typedef struct {
- f_thread_set_t *array;
-
- f_number_unsigned_t size;
- f_number_unsigned_t used;
- } f_thread_sets_t;
-
- #define f_thread_sets_t_initialize { 0, 0, 0 }
-
- #define macro_f_thread_sets_t_initialize_1(array, size, used) { array, size, used }
- #define macro_f_thread_sets_t_initialize_2(array, length) { array, length, length }
-#endif // _di_f_thread_sets_t_
-
-/**
- * A callback intended to be passed to f_memory_arrays_resize() for an f_thread_sets_t structure.
- *
- * This is only called when shrinking the array and generally should perform deallocations.
- *
- * This does not do parameter checking.
- *
- * @param start
- * The inclusive start position in the array to start deleting.
- * @param stop
- * The exclusive stop position in the array to stop deleting.
- * @param array
- * The array structure to delete all values of.
- *
- * Must not be NULL.
- *
- * @return
- * F_okay on success.
- *
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_memory_array_resize().
- *
- * @see f_memory_array_resize()
- * @see f_memory_arrays_resize()
- */
-#ifndef _di_f_thread_sets_delete_callback_
- extern f_status_t f_thread_sets_delete_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const array);
-#endif // _di_f_thread_sets_delete_callback_
-
-/**
- * A callback intended to be passed to f_memory_arrays_adjust() for an f_thread_sets_t structure.
- *
- * This is only called when shrinking the array and generally should perform deallocations.
- *
- * This does not do parameter checking.
- *
- * @param start
- * The inclusive start position in the array to start deleting.
- * @param stop
- * The exclusive stop position in the array to stop deleting.
- * @param array
- * The array structure to delete all values of.
- *
- * Must not be NULL.
- *
- * @return
- * F_okay on success.
- *
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_memory_array_adjust().
- *
- * @see f_memory_array_adjust()
- * @see f_memory_arrays_adjust()
- */
-#ifndef _di_f_thread_sets_destroy_callback_
- extern f_status_t f_thread_sets_destroy_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const array);
-#endif // _di_f_thread_sets_destroy_callback_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _F_thread_sets_h
+++ /dev/null
-#include "../thread.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#ifndef _di_f_thread_setss_delete_callback_
- f_status_t f_thread_setss_delete_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const void_array) {
-
- f_thread_sets_t * const array = (f_thread_sets_t *) void_array;
- f_number_unsigned_t j = 0;
-
- for (f_number_unsigned_t i = start; i < stop; ++i) {
-
- for (j = 0; j < array[i].size; ++j) {
- if (pthread_attr_destroy(&array[i].array[j].attribute)) return F_status_set_error(F_failure);
- } // for
-
- if (array[i].size && array[i].array) {
- const f_status_t status = f_memory_array_resize(0, sizeof(f_thread_set_t), (void **) &array[i].array, &array[i].used, &array[i].size);
- if (F_status_is_error(status)) return status;
- }
- } // for
-
- return F_okay;
- }
-#endif // _di_f_thread_setss_delete_callback_
-
-#ifndef _di_f_thread_setss_destroy_callback_
- f_status_t f_thread_setss_destroy_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const void_array) {
-
- f_thread_sets_t * const array = (f_thread_sets_t *) void_array;
- f_number_unsigned_t j = 0;
-
- for (f_number_unsigned_t i = start; i < stop; ++i) {
-
- for (j = 0; j < array[i].size; ++j) {
- if (pthread_attr_destroy(&array[i].array[j].attribute)) return F_status_set_error(F_failure);
- } // for
-
- if (array[i].size && array[i].array) {
- const f_status_t status = f_memory_array_adjust(0, sizeof(f_thread_set_t), (void **) &array[i].array, &array[i].used, &array[i].size);
- if (F_status_is_error(status)) return status;
- }
- } // for
-
- return F_okay;
- }
-#endif // _di_f_thread_setss_destroy_callback_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
+++ /dev/null
-/**
- * FLL - Level 0
- *
- * Project: Thread
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Defines common data to be used for/by POSIX thread related functionality.
- *
- * This is auto-included by thread.h and should not need to be explicitly included.
- */
-#ifndef _F_thread_setss_h
-#define _F_thread_setss_h
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/**
- * An array of an array of f_thread_sets_t.
- *
- * Properties:
- * - array: The array of f_thread_sets_t.
- * - size: Total amount of allocated space.
- * - used: Total number of allocated spaces used.
- */
-#ifndef _di_f_thread_setss_t_
- typedef struct {
- f_thread_sets_t *array;
-
- f_number_unsigned_t size;
- f_number_unsigned_t used;
- } f_thread_setss_t;
-
- #define f_thread_setss_t_initialize { 0, 0, 0 }
-
- #define macro_f_thread_setss_t_initialize_1(array, size, used) { array, size, used }
- #define macro_f_thread_setss_t_initialize_2(array, length) { array, length, length }
-#endif // _di_f_thread_setss_t_
-
-/**
- * A callback intended to be passed to f_memory_arrays_resize() for an f_thread_setss_t structure.
- *
- * This is only called when shrinking the array and generally should perform deallocations.
- *
- * This does not do parameter checking.
- *
- * @param start
- * The inclusive start position in the array to start deleting.
- * @param stop
- * The exclusive stop position in the array to stop deleting.
- * @param array
- * The array structure to delete all values of.
- *
- * Must not be NULL.
- *
- * @return
- * F_okay on success.
- *
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_memory_array_resize().
- *
- * @see f_memory_array_resize()
- * @see f_memory_arrays_resize()
- */
-#ifndef _di_f_thread_setss_delete_callback_
- extern f_status_t f_thread_setss_delete_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const array);
-#endif // _di_f_thread_setss_delete_callback_
-
-/**
- * A callback intended to be passed to f_memory_arrays_adjust() for an f_thread_setss_t structure.
- *
- * This is only called when shrinking the array and generally should perform deallocations.
- *
- * This does not do parameter checking.
- *
- * @param start
- * The inclusive start position in the array to start deleting.
- * @param stop
- * The exclusive stop position in the array to stop deleting.
- * @param array
- * The array structure to delete all values of.
- *
- * Must not be NULL.
- *
- * @return
- * F_okay on success.
- *
- * F_parameter (with error bit) if a parameter is invalid.
- *
- * Errors (with error bit) from: f_memory_array_adjust().
- *
- * @see f_memory_array_adjust()
- * @see f_memory_arrays_adjust()
- */
-#ifndef _di_f_thread_setss_destroy_callback_
- extern f_status_t f_thread_setss_destroy_callback(const f_number_unsigned_t start, const f_number_unsigned_t stop, void * const array);
-#endif // _di_f_thread_setss_destroy_callback_
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
-
-#endif // _F_thread_setss_h
build_sources_library thread/mutex.c thread/mutexs.c thread/mutexss.c thread/mutex_attribute.c thread/mutex_attributes.c thread/mutex_attributess.c thread/mutex_full.c thread/mutex_fulls.c thread/mutex_fullss.c
build_sources_library thread/once.c thread/onces.c thread/oncess.c
build_sources_library thread/semaphore.c thread/semaphores.c thread/semaphoress.c
-build_sources_library thread/set.c thread/sets.c thread/setss.c
build_sources_library thread/spin.c thread/spins.c thread/spinss.c
build_sources_headers thread.h
build_sources_headers thread/mutex.h thread/mutexs.h thread/mutexss.h thread/mutex_attribute.h thread/mutex_attributes.h thread/mutex_attributess.h thread/mutex_full.h thread/mutex_fulls.h thread/mutex_fullss.h
build_sources_headers thread/once.h thread/onces.h thread/oncess.h
build_sources_headers thread/semaphore.h thread/semaphores.h thread/semaphoress.h
-build_sources_headers thread/set.h thread/sets.h thread/setss.h
build_sources_headers thread/spin.h thread/spins.h thread/spinss.h
build_script yes
build_sources_library thread/mutex.c thread/mutexs.c thread/mutexss.c thread/mutex_attribute.c thread/mutex_attributes.c thread/mutex_attributess.c thread/mutex_full.c thread/mutex_fulls.c thread/mutex_fullss.c
build_sources_library thread/once.c thread/onces.c thread/oncess.c
build_sources_library thread/semaphore.c thread/semaphores.c thread/semaphoress.c
-build_sources_library thread/set.c thread/sets.c thread/setss.c
build_sources_library thread/spin.c thread/spins.c thread/spinss.c
build_sources_library ../../tests/unit/c/mock-thread.c
build_sources_headers thread/mutex.h thread/mutexs.h thread/mutexss.h thread/mutex_attribute.h thread/mutex_attributes.h thread/mutex_attributess.h thread/mutex_full.h thread/mutex_fulls.h thread/mutex_fullss.h
build_sources_headers thread/once.h thread/onces.h thread/oncess.h
build_sources_headers thread/semaphore.h thread/semaphores.h thread/semaphoress.h
-build_sources_headers thread/set.h thread/sets.h thread/setss.h
build_sources_headers thread/spin.h thread/spins.h thread/spinss.h
build_script yes
build_sources_program test-thread-semaphore_value_get.c
build_sources_program test-thread-semaphores_destroy_callback.c test-thread-semaphores_delete_callback.c
build_sources_program test-thread-semaphoress_destroy_callback.c test-thread-semaphoress_delete_callback.c
-build_sources_program test-thread-sets_destroy_callback.c test-thread-sets_delete_callback.c
-build_sources_program test-thread-setss_destroy_callback.c test-thread-setss_delete_callback.c
build_sources_program test-thread-signal_mask.c test-thread-signal_queue.c test-thread-signal_write.c
build_sources_program test-thread-spin_create.c test-thread-spin_delete.c
build_sources_program test-thread-spin_lock.c test-thread-spin_lock_try.c test-thread-spin_unlock.c
+++ /dev/null
-#include "test-thread.h"
-#include "test-thread-sets_delete_callback.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void test__f_thread_sets_delete_callback__fails(void **state) {
-
- f_thread_set_t data = f_thread_set_t_initialize;
- f_thread_set_t data_array[] = { data };
- f_thread_sets_t datas = { .array = data_array, .used = 1, .size = 1 };
- f_thread_sets_t datass_array[] = { datas };
-
- int errnos[] = {
- 1,
- mock_errno_generic,
- };
-
- f_status_t statuss[] = {
- F_status_set_error(F_failure),
- F_status_set_error(F_failure),
- };
-
- for (uint8_t i = 0; i < 2; ++i) {
-
- will_return(__wrap_pthread_attr_destroy, true);
- will_return(__wrap_pthread_attr_destroy, errnos[i]);
-
- const f_status_t status = f_thread_sets_delete_callback(0, 1, (void *) datass_array);
-
- assert_int_equal(status, statuss[i]);
- } // for
-}
-
-void test__f_thread_sets_delete_callback__works(void **state) {
-
- f_thread_set_t data = f_thread_set_t_initialize;
- f_thread_set_t data_array[] = { data };
- f_thread_sets_t datas = { .array = data_array, .used = 1, .size = 1 };
- f_thread_sets_t datass_array[] = { datas };
- const f_number_unsigned_t length = 1;
-
- {
- will_return(__wrap_pthread_attr_destroy, false);
-
- const f_status_t status = f_thread_sets_delete_callback(0, length, (void *) datass_array);
-
- assert_int_equal(status, F_okay);
- }
-}
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
+++ /dev/null
-/**
- * FLL - Level 0
- *
- * Project: Thread
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Test the array types in the type project.
- */
-#ifndef _TEST__F_thread__sets_delete_callback
-#define _TEST__F_thread__sets_delete_callback
-
-/**
- * Test that the function fails.
- *
- * @see f_thread_sets_delete_callback_()
- */
-extern void test__f_thread_sets_delete_callback__fails(void **state);
-
-/**
- * Test that the function works.
- *
- * @see f_thread_sets_delete_callback_()
- */
-extern void test__f_thread_sets_delete_callback__works(void **state);
-
-#endif // _TEST__F_thread__sets_delete_callback
+++ /dev/null
-#include "test-thread.h"
-#include "test-thread-sets_destroy_callback.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void test__f_thread_sets_destroy_callback__fails(void **state) {
-
- f_thread_set_t data = f_thread_set_t_initialize;
- f_thread_set_t data_array[] = { data };
- f_thread_sets_t datas = { .array = data_array, .used = 1, .size = 1 };
- f_thread_sets_t datass_array[] = { datas };
-
- int errnos[] = {
- 1,
- mock_errno_generic,
- };
-
- f_status_t statuss[] = {
- F_status_set_error(F_failure),
- F_status_set_error(F_failure),
- };
-
- for (uint8_t i = 0; i < 2; ++i) {
-
- will_return(__wrap_pthread_attr_destroy, true);
- will_return(__wrap_pthread_attr_destroy, errnos[i]);
-
- const f_status_t status = f_thread_sets_destroy_callback(0, 1, (void *) datass_array);
-
- assert_int_equal(status, statuss[i]);
- } // for
-}
-
-void test__f_thread_sets_destroy_callback__works(void **state) {
-
- f_thread_set_t data = f_thread_set_t_initialize;
- f_thread_set_t data_array[] = { data };
- f_thread_sets_t datas = { .array = data_array, .used = 1, .size = 1 };
- f_thread_sets_t datass_array[] = { datas };
- const f_number_unsigned_t length = 1;
-
- {
- will_return(__wrap_pthread_attr_destroy, false);
-
- const f_status_t status = f_thread_sets_destroy_callback(0, length, (void *) datass_array);
-
- assert_int_equal(status, F_okay);
- }
-}
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
+++ /dev/null
-/**
- * FLL - Level 0
- *
- * Project: Thread
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Test the array types in the type project.
- */
-#ifndef _TEST__F_thread__sets_destroy_callback
-#define _TEST__F_thread__sets_destroy_callback
-
-/**
- * Test that the function fails.
- *
- * @see f_thread_sets_destroy_callback_()
- */
-extern void test__f_thread_sets_destroy_callback__fails(void **state);
-
-/**
- * Test that the function works.
- *
- * @see f_thread_sets_destroy_callback_()
- */
-extern void test__f_thread_sets_destroy_callback__works(void **state);
-
-#endif // _TEST__F_thread__sets_destroy_callback
+++ /dev/null
-#include "test-thread.h"
-#include "test-thread-setss_delete_callback.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void test__f_thread_setss_delete_callback__fails(void **state) {
-
- f_thread_set_t data = f_thread_set_t_initialize;
- f_thread_set_t data_array[] = { data };
- f_thread_sets_t datas = { .array = data_array, .used = 1, .size = 1 };
- f_thread_sets_t datas_array[] = { datas };
- f_thread_setss_t datass = { .array = datas_array, .used = 1, .size = 1 };
- f_thread_setss_t datass_array[] = { datass };
-
- int errnos[] = {
- 1,
- mock_errno_generic,
- };
-
- f_status_t statuss[] = {
- F_status_set_error(F_failure),
- F_status_set_error(F_failure),
- };
-
- for (uint8_t i = 0; i < 2; ++i) {
-
- will_return(__wrap_pthread_attr_destroy, true);
- will_return(__wrap_pthread_attr_destroy, errnos[i]);
-
- const f_status_t status = f_thread_setss_delete_callback(0, 1, (void *) datass_array);
-
- assert_int_equal(status, statuss[i]);
- } // for
-}
-
-void test__f_thread_setss_delete_callback__works(void **state) {
-
- f_thread_set_t data = f_thread_set_t_initialize;
- f_thread_set_t data_array[] = { data };
- f_thread_sets_t datas = { .array = data_array, .used = 1, .size = 1 };
- f_thread_sets_t datas_array[] = { datas };
- f_thread_setss_t datass = { .array = datas_array, .used = 1, .size = 1 };
- f_thread_setss_t datass_array[] = { datass };
- const f_number_unsigned_t length = 1;
-
- {
- will_return(__wrap_pthread_attr_destroy, false);
- will_return(__wrap_f_memory_array_resize, false);
- will_return(__wrap_f_memory_array_resize, F_okay);
-
- const f_status_t status = f_thread_setss_delete_callback(0, length, (void *) datass_array);
-
- assert_int_equal(status, F_okay);
- }
-}
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
+++ /dev/null
-/**
- * FLL - Level 0
- *
- * Project: Thread
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Test the array types in the type project.
- */
-#ifndef _TEST__F_thread__setss_delete_callback
-#define _TEST__F_thread__setss_delete_callback
-
-/**
- * Test that the function fails.
- *
- * @see f_thread_setss_delete_callback_()
- */
-extern void test__f_thread_setss_delete_callback__fails(void **state);
-
-/**
- * Test that the function works.
- *
- * @see f_thread_setss_delete_callback_()
- */
-extern void test__f_thread_setss_delete_callback__works(void **state);
-
-#endif // _TEST__F_thread__setss_delete_callback
+++ /dev/null
-#include "test-thread.h"
-#include "test-thread-setss_destroy_callback.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-void test__f_thread_setss_destroy_callback__fails(void **state) {
-
- f_thread_set_t data = f_thread_set_t_initialize;
- f_thread_set_t data_array[] = { data };
- f_thread_sets_t datas = { .array = data_array, .used = 1, .size = 1 };
- f_thread_sets_t datas_array[] = { datas };
- f_thread_setss_t datass = { .array = datas_array, .used = 1, .size = 1 };
- f_thread_setss_t datass_array[] = { datass };
-
- int errnos[] = {
- 1,
- mock_errno_generic,
- };
-
- f_status_t statuss[] = {
- F_status_set_error(F_failure),
- F_status_set_error(F_failure),
- };
-
- for (uint8_t i = 0; i < 2; ++i) {
-
- will_return(__wrap_pthread_attr_destroy, true);
- will_return(__wrap_pthread_attr_destroy, errnos[i]);
-
- const f_status_t status = f_thread_setss_destroy_callback(0, 1, (void *) datass_array);
-
- assert_int_equal(status, statuss[i]);
- } // for
-}
-
-void test__f_thread_setss_destroy_callback__works(void **state) {
-
- f_thread_set_t data = f_thread_set_t_initialize;
- f_thread_set_t data_array[] = { data };
- f_thread_sets_t datas = { .array = data_array, .used = 1, .size = 1 };
- f_thread_sets_t datas_array[] = { datas };
- f_thread_setss_t datass = { .array = datas_array, .used = 1, .size = 1 };
- f_thread_setss_t datass_array[] = { datass };
- const f_number_unsigned_t length = 1;
-
- {
- will_return(__wrap_pthread_attr_destroy, false);
- will_return(__wrap_f_memory_array_adjust, false);
- will_return(__wrap_f_memory_array_adjust, F_okay);
-
- const f_status_t status = f_thread_setss_destroy_callback(0, length, (void *) datass_array);
-
- assert_int_equal(status, F_okay);
- }
-}
-
-#ifdef __cplusplus
-} // extern "C"
-#endif
+++ /dev/null
-/**
- * FLL - Level 0
- *
- * Project: Thread
- * API Version: 0.7
- * Licenses: lgpl-2.1-or-later
- *
- * Test the array types in the type project.
- */
-#ifndef _TEST__F_thread__setss_destroy_callback
-#define _TEST__F_thread__setss_destroy_callback
-
-/**
- * Test that the function fails.
- *
- * @see f_thread_setss_destroy_callback_()
- */
-extern void test__f_thread_setss_destroy_callback__fails(void **state);
-
-/**
- * Test that the function works.
- *
- * @see f_thread_setss_destroy_callback_()
- */
-extern void test__f_thread_setss_destroy_callback__works(void **state);
-
-#endif // _TEST__F_thread__setss_destroy_callback
cmocka_unit_test(test__f_thread_semaphoress_delete_callback__works),
cmocka_unit_test(test__f_thread_semaphoress_destroy_callback__works),
- cmocka_unit_test(test__f_thread_sets_delete_callback__fails),
- cmocka_unit_test(test__f_thread_sets_destroy_callback__fails),
- cmocka_unit_test(test__f_thread_sets_delete_callback__works),
- cmocka_unit_test(test__f_thread_sets_destroy_callback__works),
-
- cmocka_unit_test(test__f_thread_setss_delete_callback__fails),
- cmocka_unit_test(test__f_thread_setss_destroy_callback__fails),
- cmocka_unit_test(test__f_thread_setss_delete_callback__works),
- cmocka_unit_test(test__f_thread_setss_destroy_callback__works),
-
cmocka_unit_test(test__f_thread_spins_delete_callback__fails),
cmocka_unit_test(test__f_thread_spins_destroy_callback__fails),
cmocka_unit_test(test__f_thread_spins_delete_callback__works),
#include "test-thread-semaphores_destroy_callback.h"
#include "test-thread-semaphoress_delete_callback.h"
#include "test-thread-semaphoress_destroy_callback.h"
-#include "test-thread-sets_delete_callback.h"
-#include "test-thread-sets_destroy_callback.h"
-#include "test-thread-setss_delete_callback.h"
-#include "test-thread-setss_destroy_callback.h"
#include "test-thread-signal_mask.h"
#include "test-thread-signal_queue.h"
#include "test-thread-signal_write.h"