use a simpler way and delete the trylock interface