fll_error_file_print(main.data->error, F_status_set_fine(status), "f_file_stream_open", F_true, path, "open", fll_error_file_type_file);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else {
fll_error_file_print(main.data->error, F_status_set_fine(status), "f_file_stream_read", F_true, path, "read", fll_error_file_type_file);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
}
fll_error_file_print(main.data->error, F_status_set_fine(status), "f_file_stat", F_true, path, "stat", fll_error_file_type_file);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else {
controller_entry_error_print_cache(main.data->error, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
return status;
controller_entry_error_print_cache(main.data->warning, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
status = F_none;
controller_entry_error_print_cache(main.data->warning, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
controller_entry_error_print_cache(main.data->error, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status)) {
controller_entry_error_print_cache(main.data->error, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status)) {
fprintf(main.data->output.stream, "%s%s%s", main.data->context.set.title.before->string, controller_string_main_s, main.data->context.set.title.after->string);
fprintf(main.data->output.stream, "'.%c", f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
fprintf(main.data->output.stream, "' is %s and is in a %sfailed%s state, skipping execution.%c", entry_action->code & controller_entry_rule_code_require ? "required" : "optional", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else if (entry_action->code & controller_entry_rule_code_require) {
controller_entry_error_print_cache(main.data->error, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
return F_status_is_error(F_require);
controller_entry_error_print_cache(main.data->warning, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else {
fprintf(main.data->output.stream, "' is in a %sfailed%s state, skipping.%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else if (main.data->warning.verbosity == f_console_verbosity_debug) {
controller_entry_error_print_cache(main.data->warning, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
fprintf(main.data->output.stream, "%s%s%s", main.data->context.set.title.before->string, controller_string_ready_s, main.data->context.set.title.after->string);
fprintf(main.data->output.stream, "'.%c", f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else {
fprintf(main.data->output.stream, "%s%s%s", main.data->context.set.title.before->string, controller_string_ready_s, main.data->context.set.title.after->string);
fprintf(main.data->output.stream, "', state already is ready.%c", f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
}
controller_entry_error_print_cache(main.data->error, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
return F_status_is_error(F_critical);
fprintf(main.data->output.stream, "%s%s%s", main.data->context.set.title.before->string, cache->action.name_item.string, main.data->context.set.title.after->string);
fprintf(main.data->output.stream, "'.%c", f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
fprintf(main.data->output.stream, "%s%s%s", main.data->context.set.title.before->string, alias_rule.string, main.data->context.set.title.after->string);
fprintf(main.data->output.stream, "'.%c", f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
controller_entry_error_print_cache(main.data->error, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (!simulate) {
fprintf(main.data->output.stream, "%s%llu%s", main.data->context.set.important.before->string, entry_action->number, main.data->context.set.important.after->string);
fprintf(main.data->output.stream, "' MegaTime (milliseconds).%c", f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
controller_entry_error_print_cache(main.data->error, cache->action);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
return F_status_is_error(F_critical);
fprintf(main.data->output.stream, "%s%s%s", main.data->context.set.important.before->string, main.setting->entry.items.array[main.setting->failsafe_rule_id].name.string, main.data->context.set.important.after->string);
fprintf(main.data->output.stream, "'.%c", f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
}
fprintf(main.data->output.stream, "%s%s%s", main.data->context.set.title.before->string, controller_string_main_s, main.data->context.set.title.after->string);
fprintf(main.data->output.stream, "'.%c%c", f_string_eol_s[0], f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
controller_rule_error_print_cache(main.data->warning, cache->action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
fll_error_print(print, status, function, fallback);
controller_rule_error_print_cache(print, cache, item);
- f_thread_mutex_unlock(&thread->lock.print);
+ controller_print_unlock_flush(print.to.stream, &thread->lock.print);
}
}
#endif // _di_controller_rule_error_print_
controller_rule_error_print_cache(output, cache, item);
- f_thread_mutex_unlock(&thread->lock.print);
+ controller_print_unlock_flush(output.to.stream, &thread->lock.print);
}
}
#endif // _di_controller_rule_item_error_print_
controller_rule_error_print_cache(main.data->warning, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (success == F_false) {
fprintf(main.data->output.stream, "%s%s%s", main.data->context.notable.string, process->rule.name.used ? process->rule.name.string : f_string_empty_s, main.data->context.reset.string);
fprintf(main.data->output.stream, "%s'.%c", main.data->context.reset.string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
// sleep for less than a second to better show simulation of synchronous vs asynchronous.
controller_error_print(main.data->error, F_status_set_fine(status), "fll_execute_program", F_true, main.thread);
}
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
status = F_status_set_error(status);
}
fprintf(main.data->output.stream, "%s%s%s", main.data->context.notable.string, process->rule.name.used ? process->rule.name.string : f_string_empty_s, main.data->context.reset.string);
fprintf(main.data->output.stream, "%s'.%c", main.data->context.reset.string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
// sleep for less than a second to better show simulation of synchronous vs asynchronous.
controller_error_print(main.data->error, F_status_set_fine(status), "fll_execute_program", F_true, main.thread);
}
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
return F_status_set_error(status);
}
controller_rule_error_print_cache(main.data->warning, cache->action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
continue;
fprintf(main.data->error.to.stream, "%s", main.data->error.notable.after->string);
fprintf(main.data->error.to.stream, "%s'.%s%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
status = F_status_set_error(F_supported_not);
controller_rule_error_print_cache(main.data->error, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
return F_status_set_error(F_parameter);
controller_rule_item_error_print_need_want_wish(main.data->error, strings[i], dynamics[i]->array[j].string, "was not found");
controller_rule_error_print_cache(main.data->error, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
status = F_status_set_error(F_found_not);
controller_rule_item_error_print_need_want_wish(main.data->warning, strings[i], dynamics[i]->array[j].string, "was not found");
controller_rule_error_print_cache(main.data->warning, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
controller_rule_item_error_print_need_want_wish(main.data->error, strings[i], alias_other_buffer, "failed during execution");
controller_rule_error_print_cache(main.data->error, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
if (!(process->options & controller_rule_option_simulate) || F_status_set_fine(status) == F_memory_not) {
f_thread_unlock(&process_other->active);
controller_rule_item_error_print_need_want_wish(main.data->warning, strings[i], alias_other_buffer, "failed during execution");
controller_rule_error_print_cache(main.data->warning, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
}
status = F_status_set_error(F_found_not);
controller_rule_error_print_cache(main.data->error, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
if (!(process->options & controller_rule_option_simulate)) {
f_thread_unlock(&main.thread->lock.rule);
controller_rule_item_error_print_need_want_wish(main.data->warning, strings[i], alias_other_buffer, "is in a failed state");
controller_rule_error_print_cache(main.data->warning, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
}
controller_rule_error_print_cache(main.data->error, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
status = F_status_set_error(F_parameter);
controller_rule_item_error_print_rule_not_loaded(main.data->error, alias_rule.string);
controller_rule_error_print_cache(main.data->error, cache.action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
return status;
controller_rule_error_print_cache(main.data->error, process->cache.action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
// never continue on circular recursion errors even in simulate mode.
controller_rule_item_error_print_rule_not_loaded(main.data->error, process->rule.alias.string);
controller_rule_error_print_cache(main.data->error, process->cache.action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
controller_rule_error_print_cache(main.data->warning, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
continue;
controller_rule_error_print_cache(main.data->warning, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
continue;
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
f_print_dynamic_partial(main.data->error.to.stream, cache->buffer_item, cache->content_actions.array[i].array[j]);
fprintf(main.data->error.to.stream, "%s%s', the number is too large for this system.%s%c", main.data->error.notable.after->string, main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
else {
f_thread_mutex_lock(&main.thread->lock.print);
f_print_dynamic_partial(main.data->error.to.stream, cache->buffer_item, cache->content_actions.array[i].array[j]);
fprintf(main.data->error.to.stream, "%s%s', only whole numbers are allowed for an affinity value.%s%c", main.data->error.notable.after->string, main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
// get the current line number within the settings item.
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_true);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
status = F_status_set_error(F_valid_not);
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
status = F_status_set_error(F_valid_not);
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
// this function should only return F_complete_not_utf on error.
controller_rule_error_print(main.data->error, cache->action, F_complete_not_utf, "controller_validate_has_graph", F_true, F_false, main.thread);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
if (F_status_is_error_not(status_return)) {
status_return = status;
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
if (F_status_set_fine(status) == F_memory_not) {
status_return = status;
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
if (F_status_set_fine(status) == F_memory_not) {
status_return = status;
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
status_return = status;
break;
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
fprintf(main.data->error.to.stream, "%s", main.data->error.notable.after->string);
fprintf(main.data->error.to.stream, "%s' because no user was found by that name.%s%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else if (status == F_number_too_large) {
fprintf(main.data->error.to.stream, "%s", main.data->error.notable.after->string);
fprintf(main.data->error.to.stream, "%s' because the given ID is too large.%s%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else if (status == F_number) {
fprintf(main.data->error.to.stream, "%s", main.data->error.notable.after->string);
fprintf(main.data->error.to.stream, "%s' because the given ID is not a valid supported number.%s%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
fprintf(main.data->error.to.stream, "%s", main.data->error.notable.after->string);
fprintf(main.data->error.to.stream, "%s' because no group was found by that name.%s%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else if (status == F_number_too_large) {
fprintf(main.data->error.to.stream, "%s", main.data->error.notable.after->string);
fprintf(main.data->error.to.stream, "%s' because the given ID is too large.%s%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else if (status == F_number) {
fprintf(main.data->error.to.stream, "%s", main.data->error.notable.after->string);
fprintf(main.data->error.to.stream, "%s' because the given ID is not a valid supported number.%s%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
}
else {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
controller_rule_error_print_cache(main.data->error, cache->action, F_false);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
if (F_status_is_error_not(status_return)) {
fprintf(main.data->error.to.stream, "%s", main.data->error.notable.after->string);
fprintf(main.data->error.to.stream, "%s'.%s%c", main.data->error.context.before->string, main.data->error.context.after->string, f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(main.data->output.stream, &main.thread->lock.print);
}
setting_values->array[setting_values->used].used = 0;
controller_rule_error_print_cache(data->error, cache->action, F_true);
}
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(data->output.stream, &main.thread->lock.print);
return;
}
fprintf(data->output.stream, "}%c", f_string_eol_s[0]);
- f_thread_mutex_unlock(&main.thread->lock.print);
+ controller_print_unlock_flush(data->output.stream, &main.thread->lock.print);
}
#endif // _di_controller_rule_validate_