Subject: Re: a working lisp telnetd?
From: rpw3@rpw3.org (Rob Warnock)
Date: Mon, 25 Jul 2005 22:54:36 -0500
Newsgroups: comp.lang.lisp
Message-ID: <p_edne2EYf1hLnjfRVn-gA@speakeasy.net>
Christopher C. Stacy <cstacy@news.dtpq.com> wrote:
+---------------
| Scott Schwartz <"schwartz+@usenet "@bio.cse.psu.edu> writes:
| > GP lisper <spambait@CloudDancer.com> writes:
| > > Yes, but multiple connections is a 'hard part' in lisp.  Apparently,
| > > only threaded lisps can work.  That's interesting, since telnetd was
| > > part of linux long before threading appeared.
| > 
| > "If people understood fork, we wouldn't have threads." 
| >  -- Rob Pike.
| 
| To implement telnet correctly for one connection requires multiprocessing.
+---------------

Not so, if you have a reliable "select()" and non-blocking I/O.
In that case, a single process can easily do *multiple* telnetd's.
This is within-one-process multiprogramming, not multiprocessing.

Aside#1: What CMUCL call's "multiprocessing" is no such thing. It's really
  within-one-process multiprogramming, a.k.a. "cooperative green threads".]

Aside: I don't know if CMUCL's SERVE-EVENT is adequate to handle
  the "telnetd" job, but it might be.


-Rob

-----
Rob Warnock			<rpw3@rpw3.org>
627 26th Avenue			<URL:http://rpw3.org/>
San Mateo, CA 94403		(650)572-2607