<!-- 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>