public override void Run()
{
try
{
while (!Stop.Get())
{
Ctrl.WaitIfStalled();
if (CheckPoint.Get())
{
try
{
Assert.IsTrue(Sync.@await());
}
catch (ThreadInterruptedException e)
{
Console.WriteLine("[Waiter] got interrupted - wait count: " + Sync.Waiter.Remaining);
throw new ThreadInterruptedException(e);
}
}
}
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
Console.Write(e.StackTrace);
Exceptions.Add(e);
}
}
}