A recursive mutex implement