Ejemplo n.º 1
0
        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!");
        }
Ejemplo n.º 2
0
 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");
     }
 }