a few changes on yengine heap control

This commit is contained in:
UbitUmarov
2022-03-09 21:04:47 +00:00
parent aa164b1bcb
commit 0e5abf6bc1
5 changed files with 37 additions and 25 deletions

View File

@@ -507,21 +507,19 @@ namespace OpenSim.Region.ScriptEngine.Yengine
protected int heapLimit;
public int m_localsHeapUsed;
public int m_arraysHeapUsed;
public virtual int UpdateLocalsHeapUse(int olduse, int newuse)
{
int newtotal = Interlocked.Add(ref m_localsHeapUsed, newuse - olduse);
if (newtotal + glblVars.arraysHeapUse > heapLimit)
throw new OutOfHeapException(m_arraysHeapUsed + newtotal + olduse - newuse, newtotal, heapLimit);
throw new OutOfHeapException(glblVars.arraysHeapUse + newtotal + olduse - newuse, newtotal + glblVars.arraysHeapUse, heapLimit);
return newuse;
}
// not in use
public virtual int UpdateArraysHeapUse(int olduse, int newuse)
{
//int newtotal = Interlocked.Add(ref m_arraysheapUsed, newuse - olduse);
if(newuse + glblVars.arraysHeapUse > heapLimit)
throw new OutOfHeapException(m_arraysHeapUsed + newuse + olduse - newuse, newuse, heapLimit);
throw new OutOfHeapException(glblVars.arraysHeapUse, glblVars.arraysHeapUse + newuse, heapLimit);
return newuse;
}
@@ -530,11 +528,6 @@ namespace OpenSim.Region.ScriptEngine.Yengine
Interlocked.Add(ref m_localsHeapUsed, delta);
}
public virtual void AddArraysHeapUse(int delta)
{
Interlocked.Add(ref m_arraysHeapUsed, delta);
}
public int xmrHeapLeft()
{
return heapLimit - m_localsHeapUsed - glblVars.arraysHeapUse;