support all signal types, prevent killing self, better signal dispatching