1998Q2/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: atomic functions -->
<!--X-From-R13: "Xba O. Znzoreg" <wyflfvapNvk.argpbz.pbz> -->
<!--X-Date: Sat, 2 May 1998 11:16:40 &#45;0700 -->
<!--X-Message-Id: 199805021815.NAA29150@dfw&#45;ix10.ix.netcom.com -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199805011311.PAA02993#xs1,simplex.nl -->
<!--X-Reference: 19980501132632.B1139#sun104,humb.nt.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: atomic functions</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:jlsysinc#ix,netcom.com">
</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="msg00330.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00332.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00298.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00420.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00331">Author</A>
&nbsp;|&nbsp;<A HREF="#00331">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00331">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: atomic functions</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></LI>
<LI><em>Subject</em>: [MUD-Dev] Re: atomic functions</LI>
<LI><em>From</em>: "Jon A. Lambert" &lt;<A HREF="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</A>&gt;</LI>
<LI><em>Date</em>: Sat, 2 May 1998 14:19:13 -5</LI>
<LI><em>Reply-To</em>: <A HREF="mailto:mud-dev#kanga,nu">mud-dev#kanga,nu</A></LI>
<LI><em>Sender</em>: "Petidomo List Agent -- Kanga.Nu version" &lt;<A HREF="mailto:petidomo#kanga,nu">petidomo#kanga,nu</A>&gt;</LI>
</UL>
<!--X-Head-of-Message-End-->
<!--X-Head-Body-Sep-Begin-->
<HR>
<!--X-Head-Body-Sep-End-->
<!--X-Body-of-Message-->
<PRE>
On  1 May 98 at 13:26, Shawn Halpenny wrote:
&gt; 
&gt; So atomic fragments are akin to critical sections?  For me, methods can
&gt; execute in their own context (essentially the call stack of an event's
&gt; processing is an entire critical section).  Since they receive current
&gt; copies of any data they touch, rather than having to wait for it to
&gt; become available, though, there's no waiting upon entry.  Given the way
&gt; I've structured things, atomic fragments don't add much benefit (but see
&gt; below).
&gt; 

There are a couple of issues here, asynchronous event execution and  
data currency/integrity.  In looking at his model, it appears to be an 
example of how data currency/integrity issues would be handled at the MPL 
(or LPC) level.  I'm not sure yet how his events are generated.

&gt; Explicitly defining an atomic function would require more programmer
&gt; work.  In a free user programming environment, I don't want to require
&gt; people to decide whether the function they just wrote to make their
&gt; sword talk needs to be atomic or have atomic sections within it.  For
&gt; now, I'm opting to leave it up to the server to decide the atomicity of
&gt; things (which it does by way of the event and DB models).  An
&gt; experienced programmer can probably outdo the server if given the
&gt; capability to declare atomic blocks, but a newbie would be more
&gt; inclined to either not declare them at all (in which case, I'd have to
&gt; rely on a system like I've already got in mind) or declare them poorly
&gt; and result in performance worse than the server would obtain doing it
&gt; itself.  

Exactly so.  Providing for explicit data currency in the language makes 
it a much more powerful tool, although there is the side-effect that 
programming for data currency is more complex.  

I've taken a similar position to yours, where data currency is implicitly
linked to event atomicity (is that a word?).  My event method call() is
the explicit way of declaring that data currency is NOT important or 
non-critical.  Perhaps the semantic opposite of Felix's model?  

Thus an Event may be made up of many methods/functions, all of which must
succeed for the event to commit.  Methods may schedule additional Events 
and these events will be scheduled regardless of whether the generating
Event succeeds or not.  So in many cases, Event calls will be obviously 
be placed just before the successful return of the top-most method.  
There is a caveat.  A method/function which is called as an event 
should ensure that it checks the state of the caller/callee for state 
validity.  Nothing comes for free.  I have just shuffled the complexity 
into another area of program design.  I have a theory this might be 
unavoidable.  :(

 
--
--/*\ Jon A. Lambert - TychoMUD     Internet:jlsysinc#ix,netcom.com /*\--
--/*\ Mud Server Developer's Page &lt;<A  HREF="http://www.netcom.com/~jlsysinc">http://www.netcom.com/~jlsysinc</A>&gt; /*\--
--/*\   "Everything that deceives may be said to enchant" - Plato   /*\--

-- 
MUD-Dev: Advancing an unrealised future.

</PRE>

<!--X-Body-of-Message-End-->
<!--X-MsgBody-End-->
<!--X-Follow-Ups-->
<HR>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00296" HREF="msg00296.html">[MUD-Dev] Re: atomic functions</A></STRONG>
<UL><LI><EM>From:</EM> "Felix A. Croes" &lt;felix#xs1,simplex.nl&gt;</LI></UL></LI>
<LI><STRONG><A NAME="00298" HREF="msg00298.html">[MUD-Dev] Re: atomic functions</A></STRONG>
<UL><LI><EM>From:</EM> Shawn Halpenny &lt;malachai#iname,com&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00330.html">[MUD-Dev] Re: Some thoughts on languages and users - was: Ma</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00332.html">[MUD-Dev] Re: PK and my "Mobless MUD" idea</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00298.html">[MUD-Dev] Re: atomic functions</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00420.html">[MUD-Dev] Re: atomic functions</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00331"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00331"><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>[MUD-Dev] Re: (fwd) Re: POLL: Games ruined by bad players (Player killers, tank rushers etc)</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00416" HREF="msg00416.html">[MUD-Dev] Re: (fwd) Re: POLL: Games ruined by bad players (Player killers, tank rushers etc)</A></strong>, 
Chris Gray <a href="mailto:cg#ami-cg,GraySage.Edmonton.AB.CA">cg#ami-cg,GraySage.Edmonton.AB.CA</a>, Wed 06 May 1998, 05:33 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00297" HREF="msg00297.html">[MUD-Dev] Monthly FAQ Posting</A></strong>, 
Ling <a href="mailto:K.L.Lo-94#student,lboro.ac.uk">K.L.Lo-94#student,lboro.ac.uk</a>, Fri 01 May 1998, 17:11 GMT
<LI><strong><A NAME="00296" HREF="msg00296.html">[MUD-Dev] Re: atomic functions</A></strong>, 
Felix A. Croes <a href="mailto:felix#xs1,simplex.nl">felix#xs1,simplex.nl</a>, Fri 01 May 1998, 13:13 GMT
<UL>
<LI><strong><A NAME="00298" HREF="msg00298.html">[MUD-Dev] Re: atomic functions</A></strong>, 
Shawn Halpenny <a href="mailto:malachai#iname,com">malachai#iname,com</a>, Fri 01 May 1998, 17:27 GMT
<UL>
<LI><strong><A NAME="00331" HREF="msg00331.html">[MUD-Dev] Re: atomic functions</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Sat 02 May 1998, 18:16 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00420" HREF="msg00420.html">[MUD-Dev] Re: atomic functions</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Wed 06 May 1998, 17:39 GMT
</LI>
</UL>
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00333" HREF="msg00333.html">[MUD-Dev] Re: atomic functions</A></strong>, 
Felix A. Croes <a href="mailto:felix#xs1,simplex.nl">felix#xs1,simplex.nl</a>, Sat 02 May 1998, 23:25 GMT
</LI>
<LI><strong><A NAME="00334" HREF="msg00334.html">[MUD-Dev] Re: atomic functions</A></strong>, 
Felix A. Croes <a href="mailto:felix#xs1,simplex.nl">felix#xs1,simplex.nl</a>, Sat 02 May 1998, 23:26 GMT
</LI>
<LI><strong><A NAME="00335" HREF="msg00335.html">[MUD-Dev] Re: atomic functions</A></strong>, 
Felix A. Croes <a href="mailto:felix#xs1,simplex.nl">felix#xs1,simplex.nl</a>, Sat 02 May 1998, 23:26 GMT
</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>