Xref: utzoo unix-pc.general:1997 unix-pc.sources:204 comp.sys.att:5102 Path: utzoo!utgpu!attcan!uunet!lll-winken!lll-lcc!ames!mailrus!ukma!david From: david@ms.uky.edu (David Herron -- One of the vertebrae) Newsgroups: unix-pc.general,unix-pc.sources,comp.sys.att Subject: Re: UNIX-PC SLIP sources Message-ID: <10823@s.ms.uky.edu> Date: 6 Jan 89 16:58:58 GMT References: <1157@sw1e.UUCP> Reply-To: david@ms.uky.edu (David Herron -- One of the vertebrae) Organization: U of Kentucky, Mathematical Sciences Lines: 26 The place to get the KA9Q sources is over in the ftp directories on louie.udel.edu .. Now, I don't see how it could possibly work. Someone said this code had been developed for BSD machines and doesn't currently run on SysV. This says to me that select()'s were used for polling I/O, since SysV doesn't have an equivalent facility. I spent a day last week thinking over different ways of implementing a select() mechanism and I think I have a way. Start off with a shared memory block. For each file descriptor which you'd want to be doing select()'s on you fork() off a child process to handle that file descriptor. (Two children maybe?) The child has an infinite loop that hangs in a read() call and when that returns it puts the result into shared memory, and sets some flag in shared memory saying that the data is there. Possibly it uses a signal to let the parent know immediately that some data has arrived? You need this so that the TCP/IP code is able to be active all the time and also let it have a way of suspending itself until something is available to do. -- <-- David Herron; an MMDF guy <-- ska: David le casse\*' {rutgers,uunet}!ukma!david, david@UKMA.BITNET <-- Now I know how Zonker felt when he graduated ... <-- Stop! Wait! I didn't mean to!