add !signal -- fix #356