1998Q3/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine -->
<!--X-From-R13: f001tzhNabin.jevtug.rqh -->
<!--X-Date: Mon, 20 Jul 1998 08:57:42 &#45;0700 -->
<!--X-Message-Id: Pine.PMDF.3.95.980720111347.541200780A&#45;100000#nova,wright.edu -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: Pine.LNX.3.96.980718181205.430I&#45;100000#andridys,ip.local -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Eng</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:s001gmu#nova,wright.edu">
</head>
<body background="/backgrounds/paperback.gif" bgcolor="#ffffff"
      text="#000000" link="#0000FF" alink="#FF0000" vlink="#006000">

  <font size="+4" color="#804040">
    <strong><em>MUD-Dev<br>mailing list archive</em></strong>
  </font>
      
<br>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->

Date:&nbsp;
[&nbsp;<a href="msg00268.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00270.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00249.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00273.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00269">Author</A>
&nbsp;|&nbsp;<A HREF="#00269">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00269">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</H1>
<HR>
<!--X-Subject-Header-End-->
<!--X-Head-of-Message-->
<UL>
<LI><em>To</em>: "<A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A>" &lt;<A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A>&gt;</LI>
<LI><em>Subject</em>: [MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</LI>
<LI><em>From</em>: <A HREF="mailto:s001gmu#nova,wright.edu">s001gmu#nova,wright.edu</A></LI>
<LI><em>Date</em>: Mon, 20 Jul 1998 11:56:06 -0400 (EDT)</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>


On Sat, 18 Jul 1998 oliver#jowett,manawatu.planet.co.nz wrote:

&gt; On Sat, 18 Jul 1998, Todd Lair wrote:

[each socket gets an event that triggers a select on its FD]
[recv concerns]
 
&gt; I assume that the reason you're checking individual sockets via events is
&gt; due to some command-parsing requirement, eg. commands won't be processed
&gt; until N seconds in the future after some action by a player.

Either a parsing requirement, or an attempt to avoid the CPU spinning it's
wheels whilst idle.  In effect, it is a polling loop, just implemented
through an event queue, with some (non-wasted) delay time betwixt loops.
Make sure to build your write FD_SET intelligently.  Don't add FDs that
don't have pending output. :) 

&gt; Why not move this to a separate layer? At the lowest level, select() on
&gt; ALL sockets with a timeout equal to the time to next pending event. When
&gt; input arrives, read and buffer; when output is possible, write from a
&gt; buffer; when exceptions occur, set an appropriate flag. Loop back and
&gt; repeat the select. Then when the event actually goes off, you check and
&gt; modify the buffers.

This works nicely, as long as you have a tick based event queue.  The
model I use is based on the system clock, and uses a linked list as the
main structure.  With one cpu, it is physically quite impossible to
schedule two events at exactly the same time (and with multiple it is
quite unlikely), so I don't need any auxiliary linked lists to handle
collisions.  The problem is that my event driver sleeps until the next
event is scheduled to go off, OR another event is placed first in the
list.  If the later happens, not only would I have to wake up the event
driver, but I'd also have to interrupt the select, and then reschedule it
with a new timeout.  Granted, that's not very difficult (just include a
pipe in your read FD_SET and write to it when you wanna interrupt), but it
seems less elegant... it ties the event driver to the socket handler in a
rather nasty way.  The socket handler and event driver are not really
related to eachother, and shouldn't be tied together in that way.  Todd's
system shouldn't have a problem with it, though, as his socket handler
would only be taking advantage of a feature of his event driver (fixed,
known-length tick intervals).

-Greg



</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<ul compact><li><strong>Follow-Ups</strong>:
<ul>
<li><strong><A NAME="00273" HREF="msg00273.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>
<ul compact><li><em>From:</em> Oliver Jowett &lt;oliver#jowett,manawatu.planet.co.nz&gt;</li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00249" HREF="msg00249.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></STRONG>
<UL><LI><EM>From:</EM> oliver#jowett,manawatu.planet.co.nz</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00268.html">[MUD-Dev] Re: Affordances and social method</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00270.html">[MUD-Dev] Re: Scripting Design Notes</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00249.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00273.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00269"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00269"><STRONG>Thread</STRONG></A></LI>
</UL>
</LI>
</UL>

<!--X-BotPNI-End-->
<!--X-User-Footer-->
<!--X-User-Footer-End-->
<ul><li>Thread context:
<BLOCKQUOTE><UL>
<LI><strong><A NAME="00246" HREF="msg00246.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Sat 18 Jul 1998, 01:51 GMT
<UL>
<LI><strong><A NAME="00661" HREF="msg00661.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Tue 11 Aug 1998, 17:32 GMT
</LI>
</UL>
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00248" HREF="msg00248.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
Todd Lair <a href="mailto:tlair#mailzone,com">tlair#mailzone,com</a>, Sat 18 Jul 1998, 05:18 GMT
<UL>
<LI><strong><A NAME="00249" HREF="msg00249.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
oliver <a href="mailto:oliver#jowett,manawatu.planet.co.nz">oliver#jowett,manawatu.planet.co.nz</a>, Sat 18 Jul 1998, 06:27 GMT
<UL>
<LI><strong><A NAME="00269" HREF="msg00269.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
s001gmu <a href="mailto:s001gmu#nova,wright.edu">s001gmu#nova,wright.edu</a>, Mon 20 Jul 1998, 15:57 GMT
<UL>
<LI><strong><A NAME="00273" HREF="msg00273.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
Oliver Jowett <a href="mailto:oliver#jowett,manawatu.planet.co.nz">oliver#jowett,manawatu.planet.co.nz</a>, Mon 20 Jul 1998, 21:51 GMT
<UL>
<LI><strong><A NAME="00277" HREF="msg00277.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
s001gmu <a href="mailto:s001gmu#nova,wright.edu">s001gmu#nova,wright.edu</a>, Tue 21 Jul 1998, 13:49 GMT
<UL>
<LI><strong><A NAME="00300" HREF="msg00300.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
Joel Kelso <a href="mailto:joel#ee,uwa.edu.au">joel#ee,uwa.edu.au</a>, Wed 22 Jul 1998, 02:21 GMT
<UL>
<LI><strong><A NAME="00305" HREF="msg00305.html">[MUD-Dev] Re: [CODE] [LANGUAGE/PLATFORM SPECIFIC] My Event Engine</A></strong>, 
s001gmu <a href="mailto:s001gmu#nova,wright.edu">s001gmu#nova,wright.edu</a>, Wed 22 Jul 1998, 13:30 GMT
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL></BLOCKQUOTE>

</ul>
<hr>
<center>
[&nbsp;<a href="../">Other Periods</a>
&nbsp;|&nbsp;<a href="../../">Other mailing lists</a>
&nbsp;|&nbsp;<a href="/search.php3">Search</a>
&nbsp;]
</center>
<hr>
</body>
</html>