don't use pthread_mutex_lock