1999Q1/
<!-- MHonArc v2.4.4 -->
<!--X-Subject: [MUD&#45;Dev] Re: Sockets and fibers -->
<!--X-From-R13: "Oqnz X. Fubeagba" <nqnzNcubravk.Bevaprgba.SRG> -->
<!--X-Date: Wed, 20 Jan 1999 18:27:54 &#45;0800 -->
<!--X-Message-Id: 19990120212643.A29130#tucson,Princeton.EDU -->
<!--X-Content-Type: text/plain -->
<!--X-Reference: 009301be44a3$ee058610$55e5edd0@dev&#45;18.chilisoft.com -->
<!--X-Head-End-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<title>MUD-Dev message, [MUD-Dev] Re: Sockets and fibers</title>
<!-- meta name="robots" content="noindex,nofollow" -->
<link rev="made" href="mailto:adam#phoenix,Princeton.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="msg00235.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00236.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Thread:&nbsp;
[&nbsp;<a href="msg00228.html">Previous</a>
&nbsp;|&nbsp;<a href="msg00241.html">Next</a>
&nbsp;]
&nbsp;&nbsp;&nbsp;&nbsp;
Index:&nbsp;
[&nbsp;<A HREF="author.html#00239">Author</A>
&nbsp;|&nbsp;<A HREF="#00239">Date</A>
&nbsp;|&nbsp;<A HREF="thread.html#00239">Thread</A>
&nbsp;]

<!--X-TopPNI-End-->
<!--X-MsgBody-->
<!--X-Subject-Header-Begin-->
<H1>[MUD-Dev] Re: Sockets and fibers</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: Sockets and fibers</LI>
<LI><em>From</em>: "Adam J. Thornton" &lt;<A HREF="mailto:adam#phoenix,Princeton.EDU">adam#phoenix,Princeton.EDU</A>&gt;</LI>
<LI><em>Date</em>: Wed, 20 Jan 1999 21:26:43 -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>
Whoops.  Sent this earlier from the wrong account.

On Wed, Jan 20, 1999 at 10:36:44AM -0800, Caliban Tiresias Darklock wrote:
[Adam:]
&gt; &gt;How would this differ from a poll-and-select() model under a Real OS?
&gt; 
&gt; 
&gt; By poll-and-select I assume you mean the standard "port concentrator" type
&gt; thing where you have a big array of sockets and just iterate through it
&gt; looking for recv() data and sending data where necessary. This was sort of
&gt; my final question; is that really a bad thing?

There are a couple of web server designs that do it that way; if you don't
mind doing the bookkeeping yourself, it gives quite good performance on
modern hardware.

&gt; As far as a Real OS goes, I'm designing under Windows primarily because it's
&gt; going to be easier to port *from* Windows later. (Lacking a user interface,
&gt; this is a lot easier than your average Windows-to-other port.) I'm intending
&gt; to separate all the O/S dependencies into two files; one to handle
&gt; connections and send/recv (I always have to correct "xmit" to "send" when I
&gt; talk about that) and one to handle access to files and resources on the
&gt; server. Everything else will be straight C using the standard library, and
&gt; will not interact with the user or the network in the slightest other than
&gt; through a simple command/response API.

Well, OK, but why do Windowsisms at all?  If Windows has a POSIX.1 layer
(surely it must, musn't it?  I admit I haven't looked, but I'd assume it
would) then you can do all this with Posixy calls, and save yourself almost
all the OS-dependent bits.

&gt; &gt;I suppose this really turns into a request about what a fiber is.
&gt; 
&gt; Per MS docs: "A fiber is a lightweight thread that is manually scheduled.
&gt; Specific fiber APIs include: ConvertThreadToFiber() CreateFiber()
&gt; DeleteFiber() GetCurrentFiber() GetFiberData() SwitchToFiber()"
&gt; 
&gt; Yeah, I don't get it either. Furthermore, MS adds:
&gt; 
&gt; "Fibers are designed to be employed by a single-threaded application, in
&gt; which case the leak will never occur. However, if threads with fibers are
&gt; started and terminated repeatedly, this can cause accumulation of memory
&gt; leaks and will eventually cause the process to run out of memory."

Er, yuck.  Assuming that Windows implements something like a nonblocking
select(), I'd think that'd be the way to go instead.

Adam
-- 
adam#princeton,edu 
"There's a border to somewhere waiting, and a tank full of time." - J. Steinman


</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="00228" HREF="msg00228.html">[MUD-Dev] Re: Sockets and fibers</A></STRONG>
<UL><LI><EM>From:</EM> "Caliban Tiresias Darklock" &lt;caliban#darklock,com&gt;</LI></UL></LI>
</UL></LI></UL>
<!--X-References-End-->
<!--X-BotPNI-->
<UL>
<LI>Prev by Date:
<STRONG><A HREF="msg00235.html">[MUD-Dev] Re: META: list "peerage"</A></STRONG>
</LI>
<LI>Next by Date:
<STRONG><A HREF="msg00236.html">[MUD-Dev] Re: Graphic design doc</A></STRONG>
</LI>
<LI>Prev by thread:
<STRONG><A HREF="msg00228.html">[MUD-Dev] Re: Sockets and fibers</A></STRONG>
</LI>
<LI>Next by thread:
<STRONG><A HREF="msg00241.html">[MUD-Dev] Re: Sockets and fibers</A></STRONG>
</LI>
<LI>Index(es):
<UL>
<LI><A HREF="index.html#00239"><STRONG>Date</STRONG></A></LI>
<LI><A HREF="thread.html#00239"><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: META: list "peerage"</STRONG>, <EM>(continued)</EM>
<ul compact>
<LI><strong><A NAME="00453" HREF="msg00453.html">[MUD-Dev] Re: META: list "peerage"</A></strong>, 
Sayeed <a href="mailto:yu219121#YorkU,CA">yu219121#YorkU,CA</a>, Thu 18 Feb 1999, 18:07 GMT
</LI>
</ul>
</LI>
<LI><strong><A NAME="00222" HREF="msg00222.html">[MUD-Dev] Re: ADMIN: List server and Kanga.Nu host changes</A></strong>, 
Koster, Raph <a href="mailto:rkoster#origin,ea.com">rkoster#origin,ea.com</a>, Thu 21 Jan 1999, 00:04 GMT
<LI><strong><A NAME="00221" HREF="msg00221.html">[MUD-Dev] Re: [DevMUD] Re: From Devmud: Database module, draft 3</A></strong>, 
Greg Connor <a href="mailto:gconnor#nekodojo,org">gconnor#nekodojo,org</a>, Wed 20 Jan 1999, 23:58 GMT
<LI><strong><A NAME="00228" HREF="msg00228.html">[MUD-Dev] Re: Sockets and fibers</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Wed 20 Jan 1999, 18:41 GMT
<UL>
<LI><strong><A NAME="00239" HREF="msg00239.html">[MUD-Dev] Re: Sockets and fibers</A></strong>, 
Adam J. Thornton <a href="mailto:adam#phoenix,Princeton.EDU">adam#phoenix,Princeton.EDU</a>, Thu 21 Jan 1999, 02:27 GMT
</LI>
<LI><strong><A NAME="00241" HREF="msg00241.html">[MUD-Dev] Re: Sockets and fibers</A></strong>, 
J C Lawrence <a href="mailto:claw#under,engr.sgi.com">claw#under,engr.sgi.com</a>, Thu 21 Jan 1999, 04:01 GMT
<UL>
<LI><strong><A NAME="00243" HREF="msg00243.html">[MUD-Dev] Re: Sockets and fibers</A></strong>, 
Jon A. Lambert <a href="mailto:jlsysinc#ix,netcom.com">jlsysinc#ix,netcom.com</a>, Mon 25 Jan 1999, 02:00 GMT
</LI>
</UL>
</LI>
</UL>
<UL>
<li>&lt;Possible follow-up(s)&gt;<br>
<LI><strong><A NAME="00295" HREF="msg00295.html">[MUD-Dev] Re: Sockets and fibers</A></strong>, 
Dr. Cat <a href="mailto:cat#oldzoom,bga.com">cat#oldzoom,bga.com</a>, Tue 26 Jan 1999, 21:56 GMT
</LI>
</UL>
</LI>
<LI><strong><A NAME="00225" HREF="msg00225.html">[MUD-Dev] Sockets and fibers</A></strong>, 
Caliban Tiresias Darklock <a href="mailto:caliban#darklock,com">caliban#darklock,com</a>, Wed 20 Jan 1999, 17:15 GMT
</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>