1.alter the linux's preprocess macro
2.add critical section
3.add .hpp file to version control