rj-action-library/Runtime/Tools/Safe.cs

36 lines
715 B
C#

using System.Collections;
using System.Collections.Generic;
using System;
using System.Reflection;
using System.Text.RegularExpressions;
namespace Rokojori
{
public class Safe
{
static readonly int maxWhileIterations = 1000 * 1000;
public static void While( Func<bool> condition, Action action, Action onTooManyIterations = null )
{
var it = 0;
while ( it < Safe.maxWhileIterations && condition() )
{
action();
it++;
}
if ( it >= Safe.maxWhileIterations )
{
RJLog.LogWithFullTrace( "Loop with too many iterations" );
if ( onTooManyIterations != null )
{
onTooManyIterations();
}
}
}
}
}