change cache mutex to r/w