//No need to relnquish lock on unlock int pthread_mutex_unlock(pthread_mutex_t *mutex) { // TODO //Mark all threads waiting on this lock as active struct map<pthread_t,thread_data*>::map_data* start=all_thread.ROOT; while(start!=NULL) { struct thread_data* thread_data=start->data; if(thread_data->state==PTHREAD_WAITING_THREAD && thread_data->waiting_lock==mutex) thread_data->state=PTHREAD_ACTIVE_THREAD; start=start->next; } lock_map.remove(mutex); PRINT("UNLOCK %lx \n",mutex); return original_pthread_mutex_unlock(mutex); }