efun: set_limits.de
VORLAEUFIG, GESCHUETZT:
SYNOPSIS:
#include <sys/rtlimits.h>
void set_limits(int tag, int value...);
void set_limits(int *limits);
BESCHREIBUNG:
Setzt die standardmaessigen Laufzeitlimiten entsprechend den
angegebenen Argumenten. Die neuen Limiten treten als 'max limits'
mit Beginn des naechsten Ausfuehrungszyklus in Kraft.
Die Argumente koennen in zwei Formen angegeben werden: als ein Array
(wie jenes, das query_limits() liefert) oder als eine Liste von Tags
und Werten. Dabei werden zwei spezielle Werte erkannt:
LIMIT_UNLIMITED: das Limit wird deaktiviert
LIMIT_KEEP: die letzte Einstellung wird beibehalten
Fuer LIMIT_COST, die Spezialwerte haben diese Bedeutung:
LIMIT_UNLIMITED: die Ausfuehrung kosten lediglich einen Tick
LIMIT_KEEP: LIMIT_COST wird auf 0 gesetzt
LIMIT_DEFAULT: LIMIT_COST wird auf -100 gesetzt
Die Efun verursacht eine Schutzverletzung ("set_limits",
current_object, limits-array).
BEISPIELE:
set_limits( ({ 200000 }) );
set_limits( LIMIT_EVAL, 200000 );
--> setzt das Limit fuer Eval-Kosten auf 200000.
set_limits( ({ LIMIT_UNLIMITED, LIMIT_KEEP, 5000 }) );
set_limits( LIMIT_EVAL, LIMIT_UNLIMITED, LIMIT_ARRAY, LIMIT_KEEP,
LIMIT_MAPPING, 5000);
--> setzt die maximalen Eval-Kosten auf unlimitiert, behaelt das
Limit fuer die Array-Groesse und setzt die maximal
Mappinggroesse auf 5000.
AENDERUNGEN:
Eingefuehrt in LDMud 3.2.7.
LDMud 3.3.563 fuehrte LIMIT_COST ein.
SIEHE AUCH:
limited(E), query_limits(E)
UNItopia (mudadm@UNItopia.de)