int thread_cond_signal(cond_t *cond) { return _thread_cond_signal(cond, FALSE); }
int thread_cond_broadcast(cond_t *cond) { return _thread_cond_signal(cond, TRUE); }
void task_deregister(_task* parent) { _thread_mutex_lock(&parent -> down_mutex); parent -> down_count++; if(!(parent -> up_count - parent -> down_count)) _thread_cond_signal(&parent->down_cv); _thread_mutex_unlock(&parent -> down_mutex); }