remove lock field
use int32 field and atomic operation to handle cancel flow