Manpages aus Driver aktualisiert.
Hierbei handelt es sich um Manpages, welche vom MG
modifiziert wurden.
Die Bemerkungen und Beispiele wurden ausgelagert in
separate Manpages, um zukuenftige Aktualisierungen
aus dem Driver zu erleichtern.
Change-Id: I5a6248cd65a8cd841831617a92aa1ee191dbf661
diff --git a/doc/efun/call_out b/doc/efun/call_out
index dba28b3..0293b3e 100644
--- a/doc/efun/call_out
+++ b/doc/efun/call_out
@@ -2,53 +2,48 @@
void call_out(string fun, int delay, mixed arg, ...)
void call_out(closure cl, int delay, mixed arg, ...)
-DESCRIPTION
- Set up a call to function fun in the current object, or to
- closure cl. The call will take place in delay seconds, with the
- remaining argument list provided. delay can be 0, but be careful!
+BESCHREIBUNG
+ Ruft zeitverzoegert die Funktion <fun> im aktuellen Objekt oder
+ die Closure <cl> auf. Der Aufruf erfolgt in <delay> Sekunden.
+ Die Funktion / Closure wird mit den <arg> Argumenten aufgerufen.
+ Die minimale Verzoegerung ist 0 (negative <delay> werden implizit als
+ 0 behandelt). Allerdings ist die reale Verzoegerung etwas zwischen
+ <delay> und __ALARM_TIME__.
- call_out() saves and restores the current user. It is now
- possible to use say() or write() which rely on a current
- user to be something useful.
+ call_out() merkt sich den aktuellen User und ruft die Funktion
+ entsprechend auf. call_out() kann nur Funktionen aufrufen, die
+ oeffentlich zugaenglich sind, das heisst "public" und "static"
+ deklarierte Funtionen. "private" und "protected" deklarierte
+ Funktionen koennen nicht aufgerufen werden.
- call_out() can only call functions which are publicly accessible,
- i.e. "public" and "static" functions. "private" and "protected"
- functions can't be called.
+ Die Ausfuehrung von call_out()s erfordert einen einfachen (nicht
+ zu aufwendigen) Schutz gegen Rabbits: die Evalkosten aller
+ gleichzeitig anstehenden call_out()s werden auf einer pro-UID-Basis
+ summiert. Uebersteigt die Summe ein vorgegebenes Maximum, wird
+ ein Fehler 'too long evaluation' erzeugt, und es werden alle
+ call_out()s des betreffenden Benutzers, die zur gleichen Zeit
+ faellig werden, entfernt.
- The execution of the call_out()s implies a simple (not
- exhaustive) measure against rabbits: the evaluation costs of
- those call_outs() executing at the same time are summed up on
- a per-UID base. If the summed-up costs exceed the given maximum,
- a 'too long evaluation' error will occur and any remaining
- call_outs() of this user scheduled for the same time are
- discarded.
+ Wenn zwei call_out()s zum gleichen Zeitpunkt ausgefuehrt werden
+ sollen, wird der zuerst gestartete zuerst ausgefuehrt.
- Callouts are executed every 2s, therefore your delay may be bigger
- than the you specified. In fact, a Callout with delay==0 is
- executed within 2s from the function call to call_out().
-
-WARNING
- Please never use call_out(...,0) in recursive Callouts and be at least
- very careful in other cases. That Callout would be executed directly
- after your current function and you really get 0 delay.
-
-EXAMPLE
+BEISPIELE
call_out("RefreshMe", 10);
- This will call the function RefreshMe() in 10 seconds without
- any arguments. The function RefreshMe() can then call out
- itself again which will result in a loop (not in a recursion)
- which can be used to check or set up things in the object in
- intervals. Be aware that callouts are stored in a linear
- list, and so are somewhat expensive for the driver.
+ Dies ruft die Funktion RefreshMe() nach Ablauf von 10 Sekunden ohne
+ irgendwelche Argumente auf. Die Funktion RefresMe() kann dann
+ wiederum selbst call_out()s starten, auch auf sich selbst, was
+ eine Schleife erzeugt (keine Rekursion). Mit einer solchen Schleife
+ koennen Anweisungen in einem Objekt in regelmaessigen Zeitintervallen
+ ausgefuehrt werden. Es ist allerdings zu beachten, dass call_out()s
+ in einer linearen Liste gespeichert werden, und deshalb ziemlich
+ rechenaufwendig fuer den Treiber sind.
- And YES: self-replicating call_out()s, where each call_out()
- creates two or more other call_out()s in a loop (so called
- 'rabbits') slow the mud down very fast, and are even able
- to crash it. No need to try it yourself.
+ Und JA: selbst-replizierende call_out()s, bei denen jeder call_out()
+ selbst zwei oder mehr call_out()s in einem Loop erzeugt (sogenannte
+ Rabbits) verlangsamen das Mud ungemein und koennen es sogar zum
+ Crash bringen. Kein Grund, es selbst auszuprobieren.
-SEE ALSO
+SIEHE AUCH
remove_call_out(E), call_out_info(E), find_call_out(E),
this_player(E), reset(A), heart_beat(A)
-
-05.11.06 Zesstra