public void Dispose() { if (Interlocked.Exchange(ref disposed, 1) == 0) { Dispose(true); GC.SuppressFinalize(this); OnDisposed(); LeakChecker.Destruct(handle); } }
public static void TestMain() { CancellationTokenSource cancel = new CancellationTokenSource(); //Console.Write("Mode>"); //string mode = Console.ReadLine(); Thread thread = new Thread(() => { Console.ReadLine(); cancel.Cancel(); }); thread.IsBackground = true; thread.Start(); try { //Test_Pipe_TCP_Client(cancel.Token).Wait(); Test_Pipe_SslStream_Client(cancel.Token).Wait(); //Test_Pipe_SpeedTest_Client("speed.sec.softether.co.jp", 9821, 32, 3 * 1000, SpeedTest.ModeFlag.Upload, cancel.Token).Wait(); //Test_Pipe_SpeedTest_Server(9821, cancel.Token).Wait(); //if (mode.StartsWith("s", StringComparison.OrdinalIgnoreCase)) //{ // Test_Pipe_SpeedTest_Server(9821, cancel.Token).Wait(); //} //else //{ // //Test_Pipe_SpeedTest_Client("speed.sec.softether.co.jp", 9821, 32, 60 * 60 * 1000, SpeedTest.ModeFlag.Download, cancel.Token).Wait(); // Test_Pipe_SpeedTest_Client("127.0.0.1", 9821, 32, 5 * 1000, SpeedTest.ModeFlag.Upload, cancel.Token).Wait(); //} //Test_Pipe_SpeedTest_Server(9821, cancel.Token).Wait(); //WebSocketHelper.WaitObjectsAsync } catch (Exception ex) { WriteLine("TestMain: " + ex.GetSingleException()); } finally { LeakChecker.Print(); } }
public Mutant(string name, bool nonBlock, bool selfThread) { this.Name = name; this.NonBlock = nonBlock; this.Leak = LeakChecker.Enter(LeakCounterKind.Mutant); try { Worker = new SingleThreadWorker($"Mutant - '{this.Name}'", selfThread); Worker.ExecAsync(p => { MutantBase = MutantBase.Create(name); }, 0)._GetResult(); } catch { this._DisposeSafe(); throw; } }
public void MemoryHelperTest() { Where(); LeakChecker.Enter(); Assert.True(MemoryHelper._UseFast); string rand = Str.GenRandStr(); Memory <byte> mem1 = rand._GetBytes_Ascii(); var seg1 = mem1._AsSegment(); var data1 = seg1.ToArray(); Assert.Equal(0, mem1.Span.SequenceCompareTo(data1)); var seg1Slow = mem1._AsSegmentSlow(); var data1Slow = seg1Slow.ToArray(); Assert.Equal(0, mem1.Span.SequenceCompareTo(data1Slow)); ReadOnlyMemory <byte> mem2 = rand._GetBytes_Ascii(); var seg2 = mem2._AsSegment(); var data2 = seg2.ToArray(); Assert.Equal(0, mem2.Span.SequenceCompareTo(data2)); var seg2Slow = mem2._AsSegmentSlow(); var data2Slow = seg2Slow.ToArray(); Assert.Equal(0, mem2.Span.SequenceCompareTo(data2Slow)); Where(); }
public DisposableObject() { handle = GCHandle.Alloc(this, GCHandleType.Weak); LeakChecker.Construct(handle, GetType().FullName); }