task_state_idle
task->state = task_state_idle;
if (task->state == task_state_idle) {
if (task->references == 0 && task->state == task_state_idle) {
if (task->state == task_state_idle) {
task->state = task_state_idle;