public static Yogi.SignalSet CreateSignalSet() { MOCK_SignalSetCreate((ref IntPtr sigset, IntPtr context, int signals) => { sigset = pointer; return((int)Yogi.ErrorCode.Ok); }); return(new Yogi.SignalSet(CreateContext(), Yogi.Signals.Term)); }
public void CreateSet() { MOCK_SignalSetCreate((ref IntPtr sigset, IntPtr context, int signals) => { Assert.Equal(pointer, context); Assert.Equal((int)Yogi.Signals.Term, signals); sigset = pointer; return((int)Yogi.ErrorCode.Ok); }); new Yogi.SignalSet(CreateContext(), Yogi.Signals.Term); }
public void AwaitSignal() { var sigset = new Yogi.SignalSet(context, Yogi.Signals.Term | Yogi.Signals.Usr5); bool called = false; sigset.AwaitSignalAsync((res, signal) => { Assert.IsType <Yogi.Success>(res); Assert.Equal(Yogi.ErrorCode.Ok, res.ErrorCode); Assert.Equal(Yogi.Signals.Term, signal); called = true; }); GC.Collect(); Yogi.RaiseSignal(Yogi.Signals.Term, "123"); GC.Collect(); context.Poll(); GC.Collect(); Assert.True(called); called = false; sigset.AwaitSignalAsync <string>((res, signal, sigarg) => { Assert.IsType <Yogi.Success>(res); Assert.Equal(Yogi.ErrorCode.Ok, res.ErrorCode); Assert.Equal(Yogi.Signals.Term, signal); Assert.Null(sigarg); called = true; }); Yogi.RaiseSignal(Yogi.Signals.Term); context.Poll(); Assert.True(called); called = false; sigset.AwaitSignalAsync <string>((res, signal, sigarg) => { Assert.IsType <Yogi.Success>(res); Assert.Equal(Yogi.ErrorCode.Ok, res.ErrorCode); Assert.Equal(Yogi.Signals.Term, signal); Assert.Equal("Hello", sigarg); called = true; }); Yogi.RaiseSignal(Yogi.Signals.Term, "Hello"); context.Poll(); Assert.True(called); }
public void CancelAwaitSignal() { var sigset = new Yogi.SignalSet(context, Yogi.Signals.Term); bool called = false; sigset.AwaitSignalAsync <string>((res, signal, sigarg) => { Assert.IsType <Yogi.Failure>(res); Assert.Equal(Yogi.ErrorCode.Canceled, res.ErrorCode); Assert.IsType <Yogi.Signals>(signal); Assert.Equal(Yogi.Signals.None, signal); Assert.Null(sigarg); called = true; }); GC.Collect(); sigset.CancelAwaitSignal(); GC.Collect(); context.Poll(); Assert.True(called); }