add happens-before