[E-Lang] multithreading

Jonathan S. Shapiro shap@eros-os.org
Thu, 19 Jul 2001 10:13:51 -0400


This is a multi-part message in MIME format.

------=_NextPart_000_00DD_01C1103B.81F5F7A0
Content-Type: text/plain;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

In the context of the multithreading discussion, I want to point out =
that there are things that can't really be done *without* preemptive =
multithreading, and that some of them are a damned nuisance. We're =
running into a few of these in the EROS work right now.

The most obvious is flow control on full-duplex streams. You have an =
input stream and an output stream, and the input stream needs to be able =
to preempt the output stream when XOFF arrives. I think it's worth =
noting that E relies on the underlying runtime to hide certain types of =
underlying asynchrony (like this one).

Hmm. I was going to write a longer note, but I see that time has gotten =
away from me. Here is the challenge question: how should full-duplex =
streams be managed in E?


Jonathan

------=_NextPart_000_00DD_01C1103B.81F5F7A0
Content-Type: text/html;
	charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=3DContent-Type content=3D"text/html; =
charset=3Diso-8859-1">
<META content=3D"MSHTML 5.50.4616.200" name=3DGENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=3D#ffffff>
<DIV><FONT face=3DArial size=3D2>In the context of the multithreading =
discussion, I=20
want to point out that there are things that can't really be done =
*without*=20
preemptive multithreading, and that some of them are a damned nuisance. =
We're=20
running into a few of these in the EROS work right now.</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>The most obvious is flow control on =
full-duplex=20
streams. You have an input stream and an output stream, and the input =
stream=20
needs to be able to preempt the output stream when XOFF arrives. I think =
it's=20
worth noting that E relies on the underlying runtime to hide certain =
types of=20
underlying asynchrony (like this one).</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Hmm. I was going to write a longer =
note, but I see=20
that time has gotten away from me. Here is the challenge question: how =
should=20
full-duplex streams be managed in E?</FONT></DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2></FONT>&nbsp;</DIV>
<DIV><FONT face=3DArial size=3D2>Jonathan</FONT></DIV></BODY></HTML>

------=_NextPart_000_00DD_01C1103B.81F5F7A0--