Example #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!");
        }