From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: Date: Tue, 22 Sep 2009 21:11:19 -0700 Message-ID: Subject: Re: [9fans] 9vx (is this the right list)? import issue From: Russ Cox To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Topicbox-Message-UUID: 761913d4-ead5-11e9-9d60-3106f5b1d025 On Tuesday, September 22, 2009, erik quanstrom wrot= e: > On Tue Sep 22 23:12:27 EDT 2009, rsc@swtch.com wrote: >> The extra tracking that has been proposed is unnecessary, >> and waiting for the Rflush doesn't make sense. =C2=A0The assumption >> is that the Rflush isn't ever going to arrive, because the connection >> is dead. > > what do you mean by "dead"? =C2=A0i/o to the same channel works > fine. I mean that the code as written is assuming that if a read or write errors out, it can only happen for one of two reasons: 1) there was an interrupt note, in which case strcmp(error, Eintr) =3D=3D 0 2) there has been an error on the 9P connection, in which case strcmp(error, Eintr) !=3D 0 and the connection will never work again. My suggestion is to enforce #2: if a non-interrupt error happens, mark the connection so that the kernel won't even try to use it again. Separately, you might investigate what error is happening that violates the assumption above. In 9vx, it is easy: case #1 happened but the error was spelled wrong. Russ