public void Signal() { SignalTest st = new SignalTest(); // Insert handler SignalHandler oh = Stdlib.signal(Signum.SIGURG, new SignalHandler(st.Handler)); st.signalReceived = ~NativeConvert.FromSignum(Signum.SIGURG); // Send signal Stdlib.raise(Signum.SIGURG); Assert.IsTrue( NativeConvert.ToSignum(st.signalReceived) == Signum.SIGURG, "#IH: Signal handler not invoked for SIGURG"); // Reset old signal Stdlib.signal(Signum.SIGURG, oh); st.signalReceived = NativeConvert.FromSignum(Signum.SIGUSR1); Stdlib.raise(Signum.SIGURG); Assert.IsFalse(NativeConvert.ToSignum(st.signalReceived) == Signum.SIGURG, "#IH: Signal Handler invoked when it should have been removed!"); }
public UnixSignal(Signum signum) { this.signum = NativeConvert.FromSignum(signum); this.signal_info = install(this.signum); if (this.signal_info == IntPtr.Zero) { throw new ArgumentException("Unable to handle signal", "signum"); } }