File size: 928 Bytes
05c9ac2 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
using System;
namespace Unity.MLAgents
{
internal class RecursionChecker : IDisposable
{
private bool m_IsRunning;
private string m_MethodName;
public RecursionChecker(string methodName)
{
m_MethodName = methodName;
}
public IDisposable Start()
{
if (m_IsRunning)
{
throw new UnityAgentsException(
$"{m_MethodName} called recursively. " +
"This might happen if you call EnvironmentStep() or EndEpisode() from custom " +
"code such as CollectObservations() or OnActionReceived()."
);
}
m_IsRunning = true;
return this;
}
public void Dispose()
{
// Reset the flag when we're done (or if an exception occurred).
m_IsRunning = false;
}
}
}
|