mirror of
https://github.com/opensim/opensim.git
synced 2026-08-05 00:46:02 +08:00
a few changes on yengine heap control
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user