#ifndef _di_f_thread_create_
f_status_t f_thread_create(const f_thread_attribute_t *attribute, f_thread_id_t *id, void *(*routine) (void *), void *argument) {
#ifndef _di_level_0_parameter_checking_
- if (!attribute) return F_status_set_error(F_parameter);
if (!id) return F_status_set_error(F_parameter);
if (!routine) return F_status_set_error(F_parameter);
- if (!argument) return F_status_set_error(F_parameter);
#endif // _di_level_0_parameter_checking_
const int error = pthread_create(id, attribute, routine, argument);
* Get the user account by the user id.
*
* @param attribute
- * The thread attributes.
+ * (optional) The thread attributes.
+ * Set to NULL to use default attributes.
* @param id
* The thread ID.
* This gets populated with the created thread ID (aka: the "child" thread).
* @param routine
* The function to execute.
* @param argument
- * The structure containing all arguments to pass to the routine.
+ * (optional) The structure containing all arguments to pass to the routine.
+ * Set to NULL to not pass an argument.
*
* @return
* F_none on success.