two mutexs to protect hash