public EvalEnvironment(EvalOptionSet opt) { _opt = opt; _network = new VirtualNetwork (opt.GetLatency (), 5, opt.GetPacketLossRate (), Environment.ProcessorCount); _nodes = new List<VirtualNode> (); _msgInt1 = new IntervalInterrupter (TimeSpan.FromMilliseconds (50), "MessagingSocket Interrupter"); _msgInt2 = new IntervalInterrupter (TimeSpan.FromMilliseconds (50), "AnonymousMessagingSocket Interrupter"); _anonInt = new IntervalInterrupter (TimeSpan.FromMilliseconds (50), "Anonymous Interrupter"); _kbrInt = new IntervalInterrupter (TimeSpan.FromSeconds (10), "KBR Stabilize Interrupter"); _dhtInt = new IntervalInterrupter (TimeSpan.FromSeconds (10), "DHT Maintenance Interrupter"); _kbrInt.LoadEqualizing = true; _dhtInt.LoadEqualizing = true; _msgInt1.Start (); _msgInt2.Start (); _anonInt.Start (); _kbrInt.Start (); _dhtInt.Start (); if (opt.ChurnInterval > 0) _churnInt = new IntervalInterrupter (TimeSpan.FromMilliseconds (opt.ChurnInterval), "Churn Interrupter"); }