thread safe and no commit push