<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD-Dev] Re: lurker emerges -->
<!--X-From-R13: Hnqvz Fxnpuraxb <igNserrubyq.pebpbqvyr.bet> -->
<!--X-Date: Mon, 10 Aug 1998 20:41:52 -0700 -->
<!--X-Message-Id: 35CFBD79.68748E69#freehold,crocodile.org -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 199808101529.IAA07164#cashew,snugharbor.com.snugharbor.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: lurker emerges</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:vt#freehold,crocodile.org">
</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>
[ <a href="../">Other Periods</a>
 | <a href="../../">Other mailing lists</a>
 | <a href="/search.php3">Search</a>
 ]
<br clear=all><hr>
<!--X-Body-Begin-->
<!--X-User-Header-->
<!--X-User-Header-End-->
<!--X-TopPNI-->
Date: 
[ <a href="msg00648.html">Previous</a>
 | <a href="msg00650.html">Next</a>
 ]
    
Thread: 
[ <a href="msg00632.html">Previous</a>
 | <a href="msg00652.html">Next</a>
 ]
    
Index: 
[ <A HREF="author.html#00649">Author</A>
 | <A HREF="#00649">Date</A>
 | <A HREF="thread.html#00649">Thread</A>
 ]
<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: lurker emerges</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: lurker emerges</LI>
<LI><em>From</em>: Vadim Tkachenko <<A HREF="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</A>></LI>
<LI><em>Date</em>: Mon, 10 Aug 1998 22:41:45 -0500</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>
T. Alexander Popiel wrote:
> 
> In message:  <<A HREF="msg00611.html">35CE83C9.62363952#freehold,crocodile.org</A>>
>              Vadim Tkachenko <vt#freehold,crocodile.org> writes:
> >
> Hmm.  Okay, definitions are always good. :-)  They promote
> communication, as opposed to vociferous noise.
:-)
> My definitions of blocking and non-blocking I/O are as follows:
Preserved for clarity
 
> Blocking I/O: you make a library/system call requesting an I/O
> operation of a given size.  The call does not return until the
> entire operation completes for the entire size requested,
> regardless of delays incurred.  Under some implementations,
> external (and only external) sources may interrupt the call.
> Under no circumstances is your program able to do other work
> while waiting for the I/O to complete.
> 
> Non-blocking I/O: you make a library/system call requesting
> an I/O operation of a given size.  The call always returns
> 'immediately' (after minimal processing of the request,
> responding with whatever data is already on hand), with an
> indication of how much I/O was actually performed.  In some
> implementations (UNIX sockets), no further processing is done
> without additional request.  In other implementations (Amiga,
> apparently, and some of the old mainframes), when the remainder
> of the requested I/O is completed, the calling program is
> informed.  In both cases, a _separate_ library/system call is
> available to wait until more I/O is possible or I/O completes
> (depending on flavor).
Okay, now I see that I meant the same definitions, although have a
different viewpoint.
For last 2 years I'm thinking in Java, before that I'd been thinking in
C++ for 6 years, 2 of which were preemptive and multithreaded, before
that, it was Windows.
Now, I agree that UNIX may not (I'm not really strong in C++ in UNIX)
and Java does not have asynchronous I/O as you describe it. However, I
was doing the stuff mostly top-to-the-bottom and don't really see a
problem here. Let me draft it (I guess, it's pretty obvious):
ACT is the Asynchronous Completion Token (Design patterns...), has
read_count field and a semaphore.
ACT	asyncread( buffer, how_much_do_I_want, boolean all_async );
OK, so what I have is some read performed at once (no sense in async
read if I know the absolute minimum I want), and then I know how much
did I read - the ACT has it. Then, I can go out and do my stuff, and
when I'm ready I may go out and wait for the completion semaphore (let
me emphasise, _event_ semaphore).
So, on the API level - what's the difference between the _library_ call
and the simple piece of code I'm talking about? Agreed, the former may
be _much_ more effective, but if you're going to production, you need
the _scalable_ solution anyway, and if it really bothers you, go to the
platform which does have the stuff you mentioned and make it native, in
Java case.
> The most important distinction in my mind is the ability (or
> lack thereof) to separate the request and the wait for request
> completion.
Nah, the Asynchronous Completion Token is a solution in this case.
For those who still remember what is a Jukebox: guys, I'm terribly sorry
- it's in the transition from 2.0 to 3.0 right now and I'm really
ashamed to give it away as it is - it's patchy and messy, but for those
interested - I can send you the complete CVS repository today. A while
ago, the copyright issues were holding me, but not any more.
Reading the MUD-Dev too much, remember - there was a thread about what
happens to those who start reading it...
> - Alex (who seems to have spawned quite the tempest)
-- 
Still alive and smile stays on,
Vadim Tkachenko <vt#freehold,crocodile.org>
--
UNIX _is_ user friendly, he's just very picky about who his friends are
</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="00654" HREF="msg00654.html">[MUD-Dev] Re: lurker emerges</A></strong>
<ul compact><li><em>From:</em> Vadim Tkachenko <vt#freehold,crocodile.org></li></ul>
<li><strong><A NAME="00652" HREF="msg00652.html">[MUD-Dev] Re: lurker emerges</A></strong>
<ul compact><li><em>From:</em> "T. Alexander Popiel" <popiel#snugharbor,com></li></ul>
</UL></LI></UL>
<!--X-Follow-Ups-End-->
<!--X-References-->
<UL><LI><STRONG>References</STRONG>:
<UL>
<LI><STRONG><A NAME="00632" HREF="msg00632.html">[MUD-Dev] Re: lurker emerges</A></STRONG>
<UL><LI><EM>From:</EM> "T. Alexander Popiel" <popiel#snugharbor,com></LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00648.html">[MUD-Dev] Re: OT: Re: Ethernet NICS, maximum connections..mud testing.</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00650.html">[MUD-Dev] Re: async i/o and threads (was: Re: lurker emerges</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00632.html">[MUD-Dev] Re: lurker emerges</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00652.html">[MUD-Dev] Re: lurker emerges</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00649"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00649"><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: lurker emerges</STRONG>, <EM>(continued)</EM>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<ul compact>
<LI><strong><A NAME="01053" HREF="msg01053.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Thu 17 Sep 1998, 00:26 GMT
</LI>
</ul>
<LI><strong><A NAME="00610" HREF="msg00610.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
T. Alexander Popiel <a href="mailto:popiel#snugharbor,com">popiel#snugharbor,com</a>, Mon 10 Aug 1998, 05:05 GMT
<UL>
<LI><strong><A NAME="00611" HREF="msg00611.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
Vadim Tkachenko <a href="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</a>, Mon 10 Aug 1998, 05:23 GMT
<UL>
<LI><strong><A NAME="00632" HREF="msg00632.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
T. Alexander Popiel <a href="mailto:popiel#snugharbor,com">popiel#snugharbor,com</a>, Mon 10 Aug 1998, 15:29 GMT
<UL>
<LI><strong><A NAME="00649" HREF="msg00649.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
Vadim Tkachenko <a href="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</a>, Tue 11 Aug 1998, 03:41 GMT
<UL>
<LI><strong><A NAME="00652" HREF="msg00652.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
T. Alexander Popiel <a href="mailto:popiel#snugharbor,com">popiel#snugharbor,com</a>, Tue 11 Aug 1998, 04:45 GMT
<UL>
<LI><strong><A NAME="00653" HREF="msg00653.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
Vadim Tkachenko <a href="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</a>, Tue 11 Aug 1998, 05:39 GMT
<LI><strong><A NAME="00658" HREF="msg00658.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
T. Alexander Popiel <a href="mailto:popiel#snugharbor,com">popiel#snugharbor,com</a>, Tue 11 Aug 1998, 15:05 GMT
<LI><strong><A NAME="00676" HREF="msg00676.html">[MUD-Dev] Re: lurker emerges</A></strong>, 
Vadim Tkachenko <a href="mailto:vt#freehold,crocodile.org">vt#freehold,crocodile.org</a>, Wed 12 Aug 1998, 04:33 GMT
</LI>
</LI>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</UL>
</LI>
</ul>
</ul>
</ul>
</ul>
</LI>
</UL></BLOCKQUOTE>
</ul>
<hr>
<center>
[ <a href="../">Other Periods</a>
 | <a href="../../">Other mailing lists</a>
 | <a href="/search.php3">Search</a>
 ]
</center>
<hr>
</body>
</html>