<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/css" href="http://wiki.lostsouls.org/w/skins/common/feed.css"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.lostsouls.org/w/index.php?action=history&amp;feed=atom&amp;title=Man_call_out</id>
		<title>Man call out - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.lostsouls.org/w/index.php?action=history&amp;feed=atom&amp;title=Man_call_out"/>
		<link rel="alternate" type="text/html" href="http://wiki.lostsouls.org/w/index.php?title=Man_call_out&amp;action=history"/>
		<updated>2026-05-10T10:34:39Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.8.2</generator>

	<entry>
		<id>http://wiki.lostsouls.org/w/index.php?title=Man_call_out&amp;diff=3929&amp;oldid=prev</id>
		<title>Laine at 16:50, 11 June 2007</title>
		<link rel="alternate" type="text/html" href="http://wiki.lostsouls.org/w/index.php?title=Man_call_out&amp;diff=3929&amp;oldid=prev"/>
				<updated>2007-06-11T16:50:52Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Synopsis==&lt;br /&gt;
*void call_out(string fun, int delay, mixed arg, ...)&lt;br /&gt;
*void call_out(closure cl, int delay, mixed arg, ...)&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
Set up a call to function fun in the current object, or to&lt;br /&gt;
closure cl. The call will take place in delay seconds, with the&lt;br /&gt;
remaining argument list provided. delay can be a minimum time&lt;br /&gt;
of one second.&lt;br /&gt;
&lt;br /&gt;
call_out() saves and restores the current user. It is now&lt;br /&gt;
possible to use say() or write() which rely on a current&lt;br /&gt;
user to be something useful.&lt;br /&gt;
&lt;br /&gt;
call_out() can only call functions which are publicly accessible,&lt;br /&gt;
i.e. &amp;quot;public&amp;quot; and &amp;quot;static&amp;quot; functions. &amp;quot;private&amp;quot; and &amp;quot;protected&amp;quot;&lt;br /&gt;
functions can't be called.&lt;br /&gt;
&lt;br /&gt;
The execution of the call_out()s implies a simple (not&lt;br /&gt;
exhaustive) measure against rabbits: the evaluation costs of&lt;br /&gt;
those call_outs() executing at the same time are summed up on&lt;br /&gt;
a per-UID base. If the summed-up costs exceed the given maximum,&lt;br /&gt;
a 'too long evaluation' error will occur and any remaining&lt;br /&gt;
call_outs() of this user scheduled for the same time are&lt;br /&gt;
discarded.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
        &lt;br /&gt;
     call_out(&amp;quot;RefreshMe&amp;quot;, 10);&lt;br /&gt;
&lt;br /&gt;
This will call the function RefreshMe() in 10 seconds without&lt;br /&gt;
any arguments. The function RefreshMe() can then call out&lt;br /&gt;
itself again which will result in a loop (not in a recursion)&lt;br /&gt;
which can be used to check or set up things in the object in&lt;br /&gt;
intervals. Be aware that callouts are stored in a linear&lt;br /&gt;
list, and so are somewhat expensive for the driver.&lt;br /&gt;
&lt;br /&gt;
And YES: self-replicating call_out()s, where each call_out()&lt;br /&gt;
creates two or more other call_out()s in a loop (so called&lt;br /&gt;
'rabbits') slow the mud down very fast, and are even able&lt;br /&gt;
to crash it. No need to try it yourself.&lt;br /&gt;
&lt;br /&gt;
==See Also==&lt;br /&gt;
&lt;br /&gt;
[[man remove call out|remove_call_out(E)]], [[man call out info|call_out_info(E)]], [[man find call out|find_call_out(E)]], [[man this player|this_player(E)]], [[man reset|reset(A)]], [[man heart beat|heart_beat(A)]]&lt;/div&gt;</summary>
		<author><name>Laine</name></author>	</entry>

	</feed>