Add `f_thread` `common.h` and `common.c` with the defines relating to threads.
Move the `f_thread_mutex_attribute_*_d` into these files and remove the `_attribute` from their names.
Update the build disable headers.
#define _di_f_thread_attributes_t_
#define _di_f_thread_attributess_delete_callback_
#define _di_f_thread_attributess_destroy_callback_
+#define _di_f_thread_attributess_t_
#define _di_f_thread_barrier_attribute_create_
#define _di_f_thread_barrier_attribute_delete_
#define _di_f_thread_barrier_attribute_shared_get_
#define _di_f_thread_barrier_attributes_t_
#define _di_f_thread_barrier_attributess_delete_callback_
#define _di_f_thread_barrier_attributess_destroy_callback_
+#define _di_f_thread_barrier_attributess_t_
#define _di_f_thread_barrier_create_
#define _di_f_thread_barrier_delete_
+#define _di_f_thread_barrier_full_delete_
+#define _di_f_thread_barrier_full_t_
+#define _di_f_thread_barrier_fulls_delete_callback_
+#define _di_f_thread_barrier_fulls_destroy_callback_
+#define _di_f_thread_barrier_fulls_t_
+#define _di_f_thread_barrier_fullss_delete_callback_
+#define _di_f_thread_barrier_fullss_destroy_callback_
+#define _di_f_thread_barrier_fullss_t_
#define _di_f_thread_barrier_t_
#define _di_f_thread_barrier_wait_
#define _di_f_thread_barriers_delete_callback_
#define _di_f_thread_barriers_t_
#define _di_f_thread_barrierss_delete_callback_
#define _di_f_thread_barrierss_destroy_callback_
+#define _di_f_thread_barrierss_t_
#define _di_f_thread_caller_
#define _di_f_thread_cancel_
+#define _di_f_thread_cancel_d_
#define _di_f_thread_cancel_state_set_
#define _di_f_thread_cancel_test_
#define _di_f_thread_cancel_type_set_
#define _di_f_thread_condition_attributes_t_
#define _di_f_thread_condition_attributess_delete_callback_
#define _di_f_thread_condition_attributess_destroy_callback_
+#define _di_f_thread_condition_attributess_t_
#define _di_f_thread_condition_create_
#define _di_f_thread_condition_delete_
+#define _di_f_thread_condition_full_delete_
+#define _di_f_thread_condition_full_t_
+#define _di_f_thread_condition_fulls_delete_callback_
+#define _di_f_thread_condition_fulls_destroy_callback_
+#define _di_f_thread_condition_fulls_t_
+#define _di_f_thread_condition_fullss_delete_callback_
+#define _di_f_thread_condition_fullss_destroy_callback_
+#define _di_f_thread_condition_fullss_t_
#define _di_f_thread_condition_signal_
#define _di_f_thread_condition_signal_all_
#define _di_f_thread_condition_t_
#define _di_f_thread_conditions_t_
#define _di_f_thread_conditionss_delete_callback_
#define _di_f_thread_conditionss_destroy_callback_
+#define _di_f_thread_conditionss_t_
#define _di_f_thread_create_
#define _di_f_thread_detach_
#define _di_f_thread_exit_
#define _di_f_thread_id_t_
+#define _di_f_thread_ids_delete_callback_
+#define _di_f_thread_ids_destroy_callback_
#define _di_f_thread_ids_t_
+#define _di_f_thread_idss_delete_callback_
+#define _di_f_thread_idss_destroy_callback_
+#define _di_f_thread_idss_t_
#define _di_f_thread_join_
#define _di_f_thread_join_timed_
#define _di_f_thread_join_try_
#define _di_f_thread_keys_t_
#define _di_f_thread_keyss_delete_callback_
#define _di_f_thread_keyss_destroy_callback_
+#define _di_f_thread_keyss_t_
#define _di_f_thread_lock_attribute_create_
#define _di_f_thread_lock_attribute_delete_
#define _di_f_thread_lock_attribute_shared_get_
#define _di_f_thread_lock_attributes_t_
#define _di_f_thread_lock_attributess_delete_callback_
#define _di_f_thread_lock_attributess_destroy_callback_
+#define _di_f_thread_lock_attributess_t_
#define _di_f_thread_lock_create_
#define _di_f_thread_lock_delete_
+#define _di_f_thread_lock_full_delete_
+#define _di_f_thread_lock_full_t_
+#define _di_f_thread_lock_fulls_delete_callback_
+#define _di_f_thread_lock_fulls_destroy_callback_
+#define _di_f_thread_lock_fulls_t_
+#define _di_f_thread_lock_fullss_delete_callback_
+#define _di_f_thread_lock_fullss_destroy_callback_
+#define _di_f_thread_lock_fullss_t_
#define _di_f_thread_lock_read_
#define _di_f_thread_lock_read_timed_
#define _di_f_thread_lock_read_try_
#define _di_f_thread_locks_t_
#define _di_f_thread_lockss_delete_callback_
#define _di_f_thread_lockss_destroy_callback_
+#define _di_f_thread_lockss_t_
#define _di_f_thread_mutex_attribute_create_
#define _di_f_thread_mutex_attribute_delete_
#define _di_f_thread_mutex_attribute_priority_ceiling_get_
#define _di_f_thread_mutex_attribute_robust_set_
#define _di_f_thread_mutex_attribute_shared_get_
#define _di_f_thread_mutex_attribute_shared_set_
-#define _di_f_thread_mutex_attribute_d_
#define _di_f_thread_mutex_attribute_t_
#define _di_f_thread_mutex_attribute_type_get_
#define _di_f_thread_mutex_attribute_type_set_
#define _di_f_thread_mutex_attributes_t_
#define _di_f_thread_mutex_attributess_delete_callback_
#define _di_f_thread_mutex_attributess_destroy_callback_
+#define _di_f_thread_mutex_attributess_t_
#define _di_f_thread_mutex_consistent_
#define _di_f_thread_mutex_create_
#define _di_f_thread_mutex_d_
#define _di_f_thread_mutex_delete_
+#define _di_f_thread_mutex_full_delete_
+#define _di_f_thread_mutex_full_t_
+#define _di_f_thread_mutex_fulls_delete_callback_
+#define _di_f_thread_mutex_fulls_destroy_callback_
+#define _di_f_thread_mutex_fulls_t_
+#define _di_f_thread_mutex_fullss_delete_callback_
+#define _di_f_thread_mutex_fullss_destroy_callback_
+#define _di_f_thread_mutex_fullss_t_
#define _di_f_thread_mutex_lock_
#define _di_f_thread_mutex_lock_timed_
#define _di_f_thread_mutex_lock_try_
#define _di_f_thread_mutex_priority_ceiling_get_
#define _di_f_thread_mutex_priority_ceiling_set_
+#define _di_f_thread_mutex_protocol_d_
+#define _di_f_thread_mutex_robust_d_
#define _di_f_thread_mutex_t_
+#define _di_f_thread_mutex_type_d_
#define _di_f_thread_mutex_unlock_
#define _di_f_thread_mutexs_delete_callback_
#define _di_f_thread_mutexs_destroy_callback_
#define _di_f_thread_mutexs_t_
#define _di_f_thread_mutexss_delete_callback_
#define _di_f_thread_mutexss_destroy_callback_
+#define _di_f_thread_mutexss_t_
+#define _di_f_thread_name_get_
+#define _di_f_thread_name_set_
#define _di_f_thread_once_
#define _di_f_thread_once_t_
#define _di_f_thread_onces_t_
+#define _di_f_thread_oncess_t_
+#define _di_f_thread_process_d_
+#define _di_f_thread_schedule_d_
#define _di_f_thread_scheduler_parameter_get_
#define _di_f_thread_scheduler_parameter_set_
#define _di_f_thread_scheduler_priority_set_
+#define _di_f_thread_scope_d_
#define _di_f_thread_semaphore_create_
#define _di_f_thread_semaphore_delete_
#define _di_f_thread_semaphore_file_close_
#define _di_f_thread_semaphores_t_
#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_
#define _di_f_thread_spins_t_
#define _di_f_thread_spinss_delete_callback_
#define _di_f_thread_spinss_destroy_callback_
+#define _di_f_thread_spinss_t_
#define _di_f_thread_unlock_
#define _di_f_fll_idss_delete_callback_
#define _di_f_fll_idss_destroy_callback_
#define _di_f_gidss_delete_callback_
+#define _di_f_gidss_destroy_callback_
#define _di_f_idss_delete_callback_
+#define _di_f_idss_destroy_callback_
#define _di_f_int128ss_delete_callback_
#define _di_f_int128ss_destroy_callback_
#define _di_f_int16ss_delete_callback_
#define _di_f_statess_destroy_callback_
#define _di_f_statusss_delete_callback_
#define _di_f_statusss_destroy_callback_
+#define _di_f_uidss_delete_callback_
#define _di_f_uidss_destroy_callback_
#define _di_f_uint128ss_delete_callback_
#define _di_f_uint128ss_destroy_callback_
#define _di_f_utf_string_prepend_assure_nulless_
#define _di_f_utf_string_prepend_nulless_
#define _di_f_utf_string_seek_line_
-#define _di_f_utf_string_seek_line_back
#define _di_f_utf_string_seek_line_back_
#define _di_f_utf_string_seek_line_to_
#define _di_f_utf_string_seek_line_to_back_
build_sources_library-thread thread.c
build_sources_library-thread thread/attribute.c thread/attributes.c thread/attributess.c
build_sources_library-thread thread/barrier.c thread/barriers.c thread/barrierss.c thread/barrier_attribute.c thread/barrier_attributes.c thread/barrier_attributess.c thread/barrier_full.c thread/barrier_fulls.c thread/barrier_fullss.c
+build_sources_library-thread thread/common.c
build_sources_library-thread thread/condition.c thread/conditions.c thread/conditionss.c thread/condition_attribute.c thread/condition_attributes.c thread/condition_attributess.c thread/condition_full.c thread/condition_fulls.c thread/condition_fullss.c
build_sources_library-thread thread/id.c thread/ids.c thread/idss.c
build_sources_library-thread thread/key.c thread/keys.c thread/keyss.c
build_sources_headers-thread thread.h
build_sources_headers-thread thread/attribute.h thread/attributes.h thread/attributess.h
build_sources_headers-thread thread/barrier.h thread/barriers.h thread/barrierss.h thread/barrier_attribute.h thread/barrier_attributes.h thread/barrier_attributess.h thread/barrier_full.h thread/barrier_fulls.h thread/barrier_fullss.h
+build_sources_headers-thread thread/common.h
build_sources_headers-thread thread/condition.h thread/conditions.h thread/conditionss.h thread/condition_attribute.h thread/condition_attributes.h thread/condition_attributess.h thread/condition_full.h thread/condition_fulls.h thread/condition_fullss.h
build_sources_headers-thread thread/id.h thread/ids.h thread/idss.h
build_sources_headers-thread thread/key.h thread/keys.h thread/keyss.h
build_sources_library-thread level_0/thread.c
build_sources_library-thread level_0/thread/attribute.c level_0/thread/attributes.c level_0/thread/attributess.c
build_sources_library-thread level_0/thread/barrier.c level_0/thread/barriers.c level_0/thread/barrierss.c level_0/thread/barrier_attribute.c level_0/thread/barrier_attributes.c level_0/thread/barrier_attributess.c level_0/thread/barrier_full.c level_0/thread/barrier_fulls.c level_0/thread/barrier_fullss.c
+build_sources_library-thread level_0/thread/common.c
build_sources_library-thread level_0/thread/condition.c level_0/thread/conditions.c level_0/thread/conditionss.c level_0/thread/condition_attribute.c level_0/thread/condition_attributes.c level_0/thread/condition_attributess.c level_0/thread/condition_full.c level_0/thread/condition_fulls.c level_0/thread/condition_fullss.c
build_sources_library-thread level_0/thread/id.c level_0/thread/ids.c level_0/thread/idss.c
build_sources_library-thread level_0/thread/key.c level_0/thread/keys.c level_0/thread/keyss.c
build_sources_headers-thread level_0/thread.h
build_sources_headers-thread level_0/thread/attribute.h level_0/thread/attributes.h level_0/thread/attributess.h
build_sources_headers-thread level_0/thread/barrier.h level_0/thread/barriers.h level_0/thread/barrierss.h level_0/thread/barrier_attribute.h level_0/thread/barrier_attributes.h level_0/thread/barrier_attributess.h level_0/thread/barrier_full.h level_0/thread/barrier_fulls.h level_0/thread/barrier_fullss.h
+build_sources_headers-thread level_0/thread/common.h
build_sources_headers-thread level_0/thread/condition.h level_0/thread/conditions.h level_0/thread/conditionss.h level_0/thread/condition_attribute.h level_0/thread/condition_attributes.h level_0/thread/condition_attributess.h level_0/thread/condition_full.h level_0/thread/condition_fulls.h level_0/thread/condition_fullss.h
build_sources_headers-thread level_0/thread/id.h level_0/thread/ids.h level_0/thread/idss.h
build_sources_headers-thread level_0/thread/key.h level_0/thread/keys.h level_0/thread/keyss.h
#define _di_f_thread_barrierss_t_
#define _di_f_thread_caller_
//#define _di_f_thread_cancel_
+#define _di_f_thread_cancel_d_
//#define _di_f_thread_cancel_state_set_
#define _di_f_thread_cancel_test_
#define _di_f_thread_cancel_type_set_
#define _di_f_thread_lockss_destroy_callback_
#define _di_f_thread_lockss_t_
#define _di_f_thread_mutex_attribute_create_
-#define _di_f_thread_mutex_attribute_d_
#define _di_f_thread_mutex_attribute_delete_
#define _di_f_thread_mutex_attribute_priority_ceiling_get_
#define _di_f_thread_mutex_attribute_priority_ceiling_set_
#define _di_f_thread_mutex_lock_try_
#define _di_f_thread_mutex_priority_ceiling_get_
#define _di_f_thread_mutex_priority_ceiling_set_
+#define _di_f_thread_mutex_protocol_d_
+#define _di_f_thread_mutex_robust_d_
#define _di_f_thread_mutex_t_
+#define _di_f_thread_mutex_type_d_
#define _di_f_thread_mutex_unlock_
#define _di_f_thread_mutexs_delete_callback_
#define _di_f_thread_mutexs_destroy_callback_
#define _di_f_thread_once_t_
#define _di_f_thread_onces_t_
#define _di_f_thread_oncess_t_
+#define _di_f_thread_process_d_
+#define _di_f_thread_schedule_d_
#define _di_f_thread_scheduler_parameter_get_
#define _di_f_thread_scheduler_parameter_set_
#define _di_f_thread_scheduler_priority_set_
+#define _di_f_thread_scope_d_
#define _di_f_thread_semaphore_create_
#define _di_f_thread_semaphore_delete_
#define _di_f_thread_semaphore_file_close_
build_sources_program-thread fll/level_0/thread.c
build_sources_program-thread fll/level_0/thread/attribute.c fll/level_0/thread/attributes.c fll/level_0/thread/attributess.c
build_sources_program-thread fll/level_0/thread/barrier.c fll/level_0/thread/barriers.c fll/level_0/thread/barrierss.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/barrier_attributes.c fll/level_0/thread/barrier_attributess.c fll/level_0/thread/barrier_full.c fll/level_0/thread/barrier_fulls.c fll/level_0/thread/barrier_fullss.c
+build_sources_program-thread fll/level_0/thread/common.c
build_sources_program-thread fll/level_0/thread/condition.c fll/level_0/thread/conditions.c fll/level_0/thread/conditionss.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/condition_attributes.c fll/level_0/thread/condition_attributess.c fll/level_0/thread/condition_full.c fll/level_0/thread/condition_fulls.c fll/level_0/thread/condition_fullss.c
build_sources_program-thread fll/level_0/thread/id.c fll/level_0/thread/ids.c fll/level_0/thread/idss.c
build_sources_program-thread fll/level_0/thread/key.c fll/level_0/thread/keys.c fll/level_0/thread/keyss.c
#define _di_f_thread_barrierss_t_
#define _di_f_thread_caller_
//#define _di_f_thread_cancel_
+#define _di_f_thread_cancel_d_
//#define _di_f_thread_cancel_state_set_
#define _di_f_thread_cancel_test_
#define _di_f_thread_cancel_type_set_
#define _di_f_thread_lockss_destroy_callback_
#define _di_f_thread_lockss_t_
#define _di_f_thread_mutex_attribute_create_
-#define _di_f_thread_mutex_attribute_d_
#define _di_f_thread_mutex_attribute_delete_
#define _di_f_thread_mutex_attribute_priority_ceiling_get_
#define _di_f_thread_mutex_attribute_priority_ceiling_set_
#define _di_f_thread_mutex_lock_try_
#define _di_f_thread_mutex_priority_ceiling_get_
#define _di_f_thread_mutex_priority_ceiling_set_
+#define _di_f_thread_mutex_protocol_d_
+#define _di_f_thread_mutex_robust_d_
#define _di_f_thread_mutex_t_
+#define _di_f_thread_mutex_type_d_
#define _di_f_thread_mutex_unlock_
#define _di_f_thread_mutexs_delete_callback_
#define _di_f_thread_mutexs_destroy_callback_
#define _di_f_thread_once_t_
#define _di_f_thread_onces_t_
#define _di_f_thread_oncess_t_
+#define _di_f_thread_process_d_
+#define _di_f_thread_schedule_d_
#define _di_f_thread_scheduler_parameter_get_
#define _di_f_thread_scheduler_parameter_set_
#define _di_f_thread_scheduler_priority_set_
+#define _di_f_thread_scope_d_
#define _di_f_thread_semaphore_create_
#define _di_f_thread_semaphore_delete_
#define _di_f_thread_semaphore_file_close_
build_sources_program-thread fll/level_0/thread.c
build_sources_program-thread fll/level_0/thread/attribute.c fll/level_0/thread/attributes.c fll/level_0/thread/attributess.c
build_sources_program-thread fll/level_0/thread/barrier.c fll/level_0/thread/barriers.c fll/level_0/thread/barrierss.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/barrier_attributes.c fll/level_0/thread/barrier_attributess.c fll/level_0/thread/barrier_full.c fll/level_0/thread/barrier_fulls.c fll/level_0/thread/barrier_fullss.c
+build_sources_program-thread fll/level_0/thread/common.c
build_sources_program-thread fll/level_0/thread/condition.c fll/level_0/thread/conditions.c fll/level_0/thread/conditionss.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/condition_attributes.c fll/level_0/thread/condition_attributess.c fll/level_0/thread/condition_full.c fll/level_0/thread/condition_fulls.c fll/level_0/thread/condition_fullss.c
build_sources_program-thread fll/level_0/thread/id.c fll/level_0/thread/ids.c fll/level_0/thread/idss.c
build_sources_program-thread fll/level_0/thread/key.c fll/level_0/thread/keys.c fll/level_0/thread/keyss.c
#define _di_f_thread_barrierss_t_
#define _di_f_thread_caller_
//#define _di_f_thread_cancel_
+#define _di_f_thread_cancel_d_
//#define _di_f_thread_cancel_state_set_
#define _di_f_thread_cancel_test_
#define _di_f_thread_cancel_type_set_
#define _di_f_thread_lockss_destroy_callback_
#define _di_f_thread_lockss_t_
#define _di_f_thread_mutex_attribute_create_
-#define _di_f_thread_mutex_attribute_d_
#define _di_f_thread_mutex_attribute_delete_
#define _di_f_thread_mutex_attribute_priority_ceiling_get_
#define _di_f_thread_mutex_attribute_priority_ceiling_set_
#define _di_f_thread_mutex_attribute_robust_set_
#define _di_f_thread_mutex_attribute_shared_get_
#define _di_f_thread_mutex_attribute_shared_set_
-#define _di_f_thread_mutex_attribute_t_
+//#define _di_f_thread_mutex_attribute_t_
#define _di_f_thread_mutex_attribute_type_get_
#define _di_f_thread_mutex_attribute_type_set_
#define _di_f_thread_mutex_attributes_delete_callback_
#define _di_f_thread_mutex_lock_try_
#define _di_f_thread_mutex_priority_ceiling_get_
#define _di_f_thread_mutex_priority_ceiling_set_
+#define _di_f_thread_mutex_protocol_d_
+#define _di_f_thread_mutex_robust_d_
#define _di_f_thread_mutex_t_
+#define _di_f_thread_mutex_type_d_
#define _di_f_thread_mutex_unlock_
#define _di_f_thread_mutexs_delete_callback_
#define _di_f_thread_mutexs_destroy_callback_
#define _di_f_thread_once_t_
#define _di_f_thread_onces_t_
#define _di_f_thread_oncess_t_
+#define _di_f_thread_process_d_
+#define _di_f_thread_schedule_d_
#define _di_f_thread_scheduler_parameter_get_
#define _di_f_thread_scheduler_parameter_set_
#define _di_f_thread_scheduler_priority_set_
+#define _di_f_thread_scope_d_
#define _di_f_thread_semaphore_create_
#define _di_f_thread_semaphore_delete_
#define _di_f_thread_semaphore_file_close_
build_sources_program-thread fll/level_0/thread.c
build_sources_program-thread fll/level_0/thread/attribute.c fll/level_0/thread/attributes.c fll/level_0/thread/attributess.c
build_sources_program-thread fll/level_0/thread/barrier.c fll/level_0/thread/barriers.c fll/level_0/thread/barrierss.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/barrier_attributes.c fll/level_0/thread/barrier_attributess.c fll/level_0/thread/barrier_full.c fll/level_0/thread/barrier_fulls.c fll/level_0/thread/barrier_fullss.c
+build_sources_program-thread fll/level_0/thread/common.c
build_sources_program-thread fll/level_0/thread/condition.c fll/level_0/thread/conditions.c fll/level_0/thread/conditionss.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/condition_attributes.c fll/level_0/thread/condition_attributess.c fll/level_0/thread/condition_full.c fll/level_0/thread/condition_fulls.c fll/level_0/thread/condition_fullss.c
build_sources_program-thread fll/level_0/thread/id.c fll/level_0/thread/ids.c fll/level_0/thread/idss.c
build_sources_program-thread fll/level_0/thread/key.c fll/level_0/thread/keys.c fll/level_0/thread/keyss.c
#define _di_f_thread_barrierss_t_
#define _di_f_thread_caller_
//#define _di_f_thread_cancel_
+#define _di_f_thread_cancel_d_
//#define _di_f_thread_cancel_state_set_
#define _di_f_thread_cancel_test_
#define _di_f_thread_cancel_type_set_
#define _di_f_thread_lockss_destroy_callback_
#define _di_f_thread_lockss_t_
#define _di_f_thread_mutex_attribute_create_
-#define _di_f_thread_mutex_attribute_d_
#define _di_f_thread_mutex_attribute_delete_
#define _di_f_thread_mutex_attribute_priority_ceiling_get_
#define _di_f_thread_mutex_attribute_priority_ceiling_set_
#define _di_f_thread_mutex_lock_try_
#define _di_f_thread_mutex_priority_ceiling_get_
#define _di_f_thread_mutex_priority_ceiling_set_
+#define _di_f_thread_mutex_protocol_d_
+#define _di_f_thread_mutex_robust_d_
#define _di_f_thread_mutex_t_
+#define _di_f_thread_mutex_type_d_
#define _di_f_thread_mutex_unlock_
#define _di_f_thread_mutexs_delete_callback_
#define _di_f_thread_mutexs_destroy_callback_
#define _di_f_thread_once_t_
#define _di_f_thread_onces_t_
#define _di_f_thread_oncess_t_
+#define _di_f_thread_process_d_
+#define _di_f_thread_schedule_d_
#define _di_f_thread_scheduler_parameter_get_
#define _di_f_thread_scheduler_parameter_set_
#define _di_f_thread_scheduler_priority_set_
+#define _di_f_thread_scope_d_
#define _di_f_thread_semaphore_create_
#define _di_f_thread_semaphore_delete_
#define _di_f_thread_semaphore_file_close_
build_sources_program-thread fll/level_0/thread.c
build_sources_program-thread fll/level_0/thread/attribute.c fll/level_0/thread/attributes.c fll/level_0/thread/attributess.c
build_sources_program-thread fll/level_0/thread/barrier.c fll/level_0/thread/barriers.c fll/level_0/thread/barrierss.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/barrier_attributes.c fll/level_0/thread/barrier_attributess.c fll/level_0/thread/barrier_full.c fll/level_0/thread/barrier_fulls.c fll/level_0/thread/barrier_fullss.c
+build_sources_program-thread fll/level_0/thread/common.c
build_sources_program-thread fll/level_0/thread/condition.c fll/level_0/thread/conditions.c fll/level_0/thread/conditionss.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/condition_attributes.c fll/level_0/thread/condition_attributess.c fll/level_0/thread/condition_full.c fll/level_0/thread/condition_fulls.c fll/level_0/thread/condition_fullss.c
build_sources_program-thread fll/level_0/thread/id.c fll/level_0/thread/ids.c fll/level_0/thread/idss.c
build_sources_program-thread fll/level_0/thread/key.c fll/level_0/thread/keys.c fll/level_0/thread/keyss.c
#define _di_f_thread_barrierss_t_
#define _di_f_thread_caller_
//#define _di_f_thread_cancel_
+#define _di_f_thread_cancel_d_
//#define _di_f_thread_cancel_state_set_
#define _di_f_thread_cancel_test_
#define _di_f_thread_cancel_type_set_
#define _di_f_thread_lockss_destroy_callback_
#define _di_f_thread_lockss_t_
#define _di_f_thread_mutex_attribute_create_
-#define _di_f_thread_mutex_attribute_d_
#define _di_f_thread_mutex_attribute_delete_
#define _di_f_thread_mutex_attribute_priority_ceiling_get_
#define _di_f_thread_mutex_attribute_priority_ceiling_set_
#define _di_f_thread_mutex_lock_try_
#define _di_f_thread_mutex_priority_ceiling_get_
#define _di_f_thread_mutex_priority_ceiling_set_
+#define _di_f_thread_mutex_protocol_d_
+#define _di_f_thread_mutex_robust_d_
#define _di_f_thread_mutex_t_
+#define _di_f_thread_mutex_type_d_
#define _di_f_thread_mutex_unlock_
#define _di_f_thread_mutexs_delete_callback_
#define _di_f_thread_mutexs_destroy_callback_
#define _di_f_thread_once_t_
#define _di_f_thread_onces_t_
#define _di_f_thread_oncess_t_
+#define _di_f_thread_process_d_
+#define _di_f_thread_schedule_d_
#define _di_f_thread_scheduler_parameter_get_
#define _di_f_thread_scheduler_parameter_set_
#define _di_f_thread_scheduler_priority_set_
+#define _di_f_thread_scope_d_
#define _di_f_thread_semaphore_create_
#define _di_f_thread_semaphore_delete_
#define _di_f_thread_semaphore_file_close_
build_sources_program-thread fll/level_0/thread.c
build_sources_program-thread fll/level_0/thread/attribute.c fll/level_0/thread/attributes.c fll/level_0/thread/attributess.c
build_sources_program-thread fll/level_0/thread/barrier.c fll/level_0/thread/barriers.c fll/level_0/thread/barrierss.c fll/level_0/thread/barrier_attribute.c fll/level_0/thread/barrier_attributes.c fll/level_0/thread/barrier_attributess.c fll/level_0/thread/barrier_full.c fll/level_0/thread/barrier_fulls.c fll/level_0/thread/barrier_fullss.c
+build_sources_program-thread fll/level_0/thread/common.c
build_sources_program-thread fll/level_0/thread/condition.c fll/level_0/thread/conditions.c fll/level_0/thread/conditionss.c fll/level_0/thread/condition_attribute.c fll/level_0/thread/condition_attributes.c fll/level_0/thread/condition_attributess.c fll/level_0/thread/condition_full.c fll/level_0/thread/condition_fulls.c fll/level_0/thread/condition_fullss.c
build_sources_program-thread fll/level_0/thread/id.c fll/level_0/thread/ids.c fll/level_0/thread/idss.c
build_sources_program-thread fll/level_0/thread/key.c fll/level_0/thread/keys.c fll/level_0/thread/keyss.c
#include <fll/level_0/string.h>
// FLL-0 thread includes.
+#include <fll/level_0/thread/common.h>
#include <fll/level_0/thread/attribute.h>
#include <fll/level_0/thread/attributes.h>
#include <fll/level_0/thread/attributess.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_common_h
+#define _F_thread_common_h
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/**
+ * Thread cancel defines.
+ *
+ * f_thread_cancel_*_d:
+ * - asynchronous: Thread can be cancelled at any time.
+ * - defer: Thread is only cancellable at a cancellation point.
+ * - disable: Disable thread cancellation.
+ * - enable: Enable thread cancellation.
+ */
+#ifndef _di_f_thread_cancel_d_
+ #define f_thread_cancel_asynchronous_d PTHREAD_CANCEL_ASYNCHRONOUS
+ #define f_thread_cancel_defer_d PTHREAD_CANCEL_DEFERRED
+ #define f_thread_cancel_disable_d PTHREAD_CANCEL_DISABLE
+ #define f_thread_cancel_enable_d PTHREAD_CANCEL_ENABLE
+#endif // _di_f_thread_cancel_d_
+
+/**
+ * Thread mutex attribute protocol defines.
+ *
+ * f_thread_mutex_protocol_*_d:
+ * - inherit: Use inherit protocol; operate using the highest priority of everything currently holding the lock.
+ * - none: No special protocol; priority and scheduling are unaffected by thread ownership.
+ * - protect: Use protect protocol; use explicitly defined priority ceiling settings.
+ */
+#ifndef _di_f_thread_mutex_protocol_d_
+ #define f_thread_mutex_protocol_inherit_d PTHREAD_PRIO_INHERIT
+ #define f_thread_mutex_protocol_none_d PTHREAD_PRIO_NONE
+ #define f_thread_mutex_protocol_protect_d PTHREAD_PRIO_PROTECT
+#endif // _di_f_thread_mutex_protocol_d_
+
+/**
+ * Thread mutex attribute robust defines.
+ *
+ * f_thread_mutex_robust_*_d:
+ * - okay: The thread is considered to be in a robust state.
+ * - stalled: The thread is considered to be in a stalled state.
+ */
+#ifndef _di_f_thread_mutex_robust_d_
+ #define f_thread_mutex_robust_okay_d PTHREAD_MUTEX_ROBUST
+ #define f_thread_mutex_robust_stalled_d PTHREAD_MUTEX_STALLED
+#endif // _di_f_thread_mutex_robust_d_
+
+/**
+ * Thread mutex attribute type defines.
+ *
+ * f_thread_mutex_type_*_d:
+ * - error_check: Handle deadlock and ownership detection and return on error.
+ * - normal: The normal mutex type (also the default type and is the POSIX standard compliant version of PTHREAD_MUTEX_DEFAULT).
+ * - recursive: Recursive lock (uses a count on locks, mutexs become unlocked when count is 0).
+ */
+#ifndef _di_f_thread_mutex_type_d_
+ #define f_thread_mutex_type_error_check_d PTHREAD_MUTEX_ERRORCHECK
+ #define f_thread_mutex_type_normal_d PTHREAD_MUTEX_RECURSIVE
+ #define f_thread_mutex_type_recursive_d PTHREAD_MUTEX_NORMAL
+#endif // _di_f_thread_mutex_type_d_
+
+/**
+ * Thread process defines.
+ *
+ * f_thread_process_*_d:
+ * - private: The mutex is shared only with other threads in the same process.
+ * - shared: The mutex is shared between any threads with memory access to the mutex object (even across processes).
+ */
+#ifndef _di_f_thread_process_d_
+ #define f_thread_process_private_d PTHREAD_PROCESS_PRIVATE
+ #define f_thread_process_shared_d PTHREAD_PROCESS_SHARED
+#endif // _di_f_thread_process_d_
+
+/**
+ * Thread scheduler defines.
+ *
+ * f_thread_schedule_*_d:
+ * - explicit: Use the explicitly assigned scheduling.
+ * - inherit: Use the scheduling from a parent thread or process.
+ */
+#ifndef _di_f_thread_schedule_d_
+ #define f_thread_schedule_explicit_d PTHREAD_EXPLICIT_SCHED
+ #define f_thread_schedule_inherit_d PTHREAD_INHERIT_SCHED
+#endif // _di_f_thread_schedule_d_
+
+/**
+ * Thread scope defines.
+ *
+ * f_thread_scope_*_d:
+ * - process: The thread vies for resources with all threads in the same process with the same contention scope.
+ * - system: The thread vies for resources with all processes on the system with the same scheduling domain.
+ */
+#ifndef _di_f_thread_scope_d_
+ #define f_thread_scope_process_d PTHREAD_SCOPE_PROCESS
+ #define f_thread_scope_system_d PTHREAD_SCOPE_SYSTEM
+#endif // _di_f_thread_scope_d_
+
+#ifdef __cplusplus
+} // extern "C"
+#endif
+
+#endif // _F_thread_common_h
#endif
/**
- * Mutex attribute defines.
- *
- * f_thread_mutex_attribute_*_d:
- * - error_check: Handle deadlock and ownership detection and return on error.
- * - normal: The normal mutex type (also the default type and is the POSIX standard compliant version of PTHREAD_MUTEX_DEFAULT).
- * - recursive: Recursive lock (uses a count on locks, mutexs become unlocked when count is 0).
- */
-#ifndef _di_f_thread_mutex_attribute_d_
- #define f_thread_mutex_attribute_error_check_d PTHREAD_MUTEX_ERRORCHECK
- #define f_thread_mutex_attribute_normal_d PTHREAD_MUTEX_RECURSIVE
- #define f_thread_mutex_attribute_recursive_d PTHREAD_MUTEX_NORMAL
-#endif // _di_f_thread_mutex_attribute_d_
-
-/**
* A typedef representing pthread_mutex_attribute_t.
*/
#ifndef _di_f_thread_mutex_attribute_t_
build_sources_library thread.c
build_sources_library thread/attribute.c thread/attributes.c thread/attributess.c
build_sources_library thread/barrier.c thread/barriers.c thread/barrierss.c thread/barrier_attribute.c thread/barrier_attributes.c thread/barrier_attributess.c thread/barrier_full.c thread/barrier_fulls.c thread/barrier_fullss.c
+build_sources_library thread/common.c
build_sources_library thread/condition.c thread/conditions.c thread/conditionss.c thread/condition_attribute.c thread/condition_attributes.c thread/condition_attributess.c thread/condition_full.c thread/condition_fulls.c thread/condition_fullss.c
build_sources_library thread/id.c thread/ids.c thread/idss.c
build_sources_library thread/key.c thread/keys.c thread/keyss.c
build_sources_headers thread.h
build_sources_headers thread/attribute.h thread/attributes.h thread/attributess.h
build_sources_headers thread/barrier.h thread/barriers.h thread/barrierss.h thread/barrier_attribute.h thread/barrier_attributes.h thread/barrier_attributess.h thread/barrier_full.h thread/barrier_fulls.h thread/barrier_fullss.h
+build_sources_headers thread/common.h
build_sources_headers thread/condition.h thread/conditions.h thread/conditionss.h thread/condition_attribute.h thread/condition_attributes.h thread/condition_attributess.h thread/condition_full.h thread/condition_fulls.h thread/condition_fullss.h
build_sources_headers thread/id.h thread/ids.h thread/idss.h
build_sources_headers thread/key.h thread/keys.h thread/keyss.h
build_sources_library thread.c
build_sources_library thread/attribute.c thread/attributes.c thread/attributess.c
build_sources_library thread/barrier.c thread/barriers.c thread/barrierss.c thread/barrier_attribute.c thread/barrier_attributes.c thread/barrier_attributess.c thread/barrier_full.c thread/barrier_fulls.c thread/barrier_fullss.c
+build_sources_library thread/common.c
build_sources_library thread/condition.c thread/conditions.c thread/conditionss.c thread/condition_attribute.c thread/condition_attributes.c thread/condition_attributess.c thread/condition_full.c thread/condition_fulls.c thread/condition_fullss.c
build_sources_library thread/id.c thread/ids.c thread/idss.c
build_sources_library thread/key.c thread/keys.c thread/keyss.c
build_sources_headers thread.h
build_sources_headers thread/attribute.h thread/attributes.h thread/attributess.h
build_sources_headers thread/barrier.h thread/barriers.h thread/barrierss.h thread/barrier_attribute.h thread/barrier_attributes.h thread/barrier_attributess.h thread/barrier_full.h thread/barrier_fulls.h thread/barrier_fullss.h
+build_sources_headers thread/common.h
build_sources_headers thread/condition.h thread/conditions.h thread/conditionss.h thread/condition_attribute.h thread/condition_attributes.h thread/condition_attributess.h thread/condition_full.h thread/condition_fulls.h thread/condition_fullss.h
build_sources_headers thread/id.h thread/ids.h thread/idss.h
build_sources_headers thread/key.h thread/keys.h thread/keyss.h