Start Info Community Spielen
 
 

Morgengrauner Dokumentation

Dateipfad: /home/mud/mudlib/doc//efun/limited

VORLAEUFIG, GESCHUETZT
SYNOPSIS
        #include 

        mixed limited(closure fun)
        mixed limited(closure fun, int tag, int value, ...)
        mixed limited(closure fun, int *limits)
        mixed limited(closure fun, int *limits, mixed *args)

BESCHREIBUNG
        limited() ruft die Funktion  mit den bezeichneten Argumenten
         auf und fuehrt sie mit den gegebenen Laufzeitlimitierungen aus.

        Beim Ende der Funktion  werden die momentan aktiven
        Laufzeitlimitierungen wiederhergestellt. limited() liefert den
        Rueckgabewert der Closure  zurueck.

        Die Laufzeitlimitierungen koennen in zwei Formen angegeben werden: 
        *  als Array (wie es von query_limits() geliefert wird) oder 
        *  als Liste von Werten mit Tags.
        Wird limited() ohne Angabe von Limits aufgerufen, gelten die
        Laufzeitlimiten als 'unlimitiert'.

        Die Limitierung kennt drei spezielle Werte aus :
            LIMIT_UNLIMITED:    es gibt kein Limit
            LIMIT_KEEP:         das zuletzt gesetzte Limit wird beibehalten
            LIMIT_DEFAULT:      die 'globalen' Limitierungen werden verwendet

        Fuer LIMIT_COST haben folgende Spezialwerte eine 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

        limited() erzeugt eine Schutzverletzung ("limited", current_object,
        fun, limits-array).


BEISPIELE
        limited(#'function)
        --> fuehrt die Funktion ohne Limits aus.

        limited(#'function, ({ 200000 }), "foo")
        --> fuehrt die Funktion mit einem Eval-Kosten-Limit von 200000 Ticks
            aus. Die Funktion wird als 'function("foo")' aufgerufen.

        limited(lambda(0, ({#'function, "foo"})), LIMIT_EVAL, 200000)
        --> fuehrt die Funktion mit einem Eval-Kosten-Limit von 200000 Ticks
            aus. Die Funktion wird als 'function("foo")' aufgerufen.

GESCHICHTE
        Eingefuehrt in LDMud 3.2.7.
        LDMud 3.3.563 fuehrte LIMIT_COST ein.
        LDMud 3.5.0 fuehrte LIMIT_MEMORY ein.

SIEHE AUCH
        query_limits(E), set_limits(E)


zurück zur Übersicht

YOUTUBE | FACEBOOK | TWITTER | DISCORD | FEEDBACK | IMPRESSUM | DATENSCHUTZ 1992–2023 © MorgenGrauen.