/doc/efun/call_out


SYNOPSIS

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 or closure cl in the current object. The call will take place in delay seconds, with the remaining argument list provided. delay can be a minimum time of one second.

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.

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-user 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.

EXAMPLE

	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. 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 crash it. No need to try it yourself.

SEE ALSO

remove_call_out
call_out_info
find_call_out
this_player
heart_beat

| Home | Applied | Concepts | Efuns | Help | Intro | Lib | LPC | Prop | Obj | Sefuns | Std | W |

Nightfall@quest.tat.physik.uni-tuebingen.de
Automatically generated on Don, 11. Apr 1996