bug fix: duplicate data in multithread situation