add non blocking lock