use C++ 11 mutext to replace mutex guard class