Change: Limit memory allocations for each Squirrel instance
This can avoid out-of-memory situations due to single scripts using up the entire address space. Instead, scripts that go above the maximum are killed. The maximum is default 1 GB per script, but can be configured by a setting.
This commit is contained in:
@@ -198,6 +198,8 @@ public:
|
||||
*/
|
||||
bool IsSleeping() { return this->suspend != 0; }
|
||||
|
||||
size_t GetAllocatedMemory() const;
|
||||
|
||||
protected:
|
||||
class Squirrel *engine; ///< A wrapper around the squirrel vm.
|
||||
const char *versionAPI; ///< Current API used by this script.
|
||||
@@ -241,6 +243,7 @@ private:
|
||||
int suspend; ///< The amount of ticks to suspend this script before it's allowed to continue.
|
||||
bool is_paused; ///< Is the script paused? (a paused script will not be executed until unpaused)
|
||||
Script_SuspendCallbackProc *callback; ///< Callback that should be called in the next tick the script runs.
|
||||
size_t last_allocated_memory; ///< Last known allocated memory value (for display for crashed scripts)
|
||||
|
||||
/**
|
||||
* Call the script Load function if it exists and data was loaded
|
||||
|
Reference in New Issue
Block a user