add Mutex

simulate mutex with atomic
notice that the mutex cannot work correctly when running in --domain=mt
use mutex when pushing event

also modify the Makefile
build the project in --domain=st