From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.1 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 23718 invoked from network); 31 May 2020 16:06:51 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 31 May 2020 16:06:51 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 134169CA33; Mon, 1 Jun 2020 02:06:50 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 5D8B59C863; Mon, 1 Jun 2020 02:06:18 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=ccc.com header.i=@ccc.com header.b="dvW7z5EZ"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 9258A9C5E5; Mon, 1 Jun 2020 02:06:15 +1000 (AEST) Received: from mail-qv1-f43.google.com (mail-qv1-f43.google.com [209.85.219.43]) by minnie.tuhs.org (Postfix) with ESMTPS id ADC6B9C1EA for ; Mon, 1 Jun 2020 02:06:13 +1000 (AEST) Received: by mail-qv1-f43.google.com with SMTP id e20so3395605qvu.0 for ; Sun, 31 May 2020 09:06:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ccc.com; s=google; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=/Cq2USfDkdA3M60a1nT1qXHV88YM7Dwb9eP1n/d4mUE=; b=dvW7z5EZatWhzDIVNaEeJzA4jJ0ZfkwBBDPIfF02pCQ7sDGPX3Z7sK2cTZb0ZusyNr Np4ZbxvfxCrAQ86qiIurV7fAh+GtE7nvEdG2n6tss1qnOat7hPfO/EViUwatJUaIjT6y 6DWp8v0SedDDbM5WywfDHs/qwJjWtZLtiwmMg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=/Cq2USfDkdA3M60a1nT1qXHV88YM7Dwb9eP1n/d4mUE=; b=I8jD0GlYSZ9wfMsyYf25FtmmbgM/xJ7A3fQ5sUlgTPXM/ZgGv2qvRjhUQturDSNl/k bMFaz18uevjqOUEJmn9MVq/qFBTTvqzWHIHN26AYFbtp+z6WTRdNHQaiSHGmNq+KNiJf Y68NF59Gzt1A2waVqcKnL9uz3iT5B2wFJxpRh06dr7FST/VdlYIqpRGptWCKkY5DbTsG /9ljvGRYXBBG7RTuGmMosz/7ARY4m3h/VCvBJimWMME+K4l+8s87V43sEhoBOo/LQB9K PIdMYByuKYbSUiiHvv2QcXGZEzdmmWkbDzBlGvu6LdLKMekJeBDxz/pXWRqN+0g49/21 pTXA== X-Gm-Message-State: AOAM533jJt6+Tyr+NebPiTnH2yKEgEFzkRSzRroL3WxJkcc9PrIHfKlK x9WGgvQE7mDc30uQOg+LUdv3lEqx1i3lXaFXOZT1eMZM X-Google-Smtp-Source: ABdhPJwzmLTnlUYWAATeTRZovOseWSg20bRYJVLXzGpXz+kBHR+k40jBYCm0fGxIy5jtf3AXejVlWe1opp3idxN44R8= X-Received: by 2002:a0c:e711:: with SMTP id d17mr7953949qvn.56.1590941172460; Sun, 31 May 2020 09:06:12 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Clem Cole Date: Sun, 31 May 2020 12:05:47 -0400 Message-ID: To: Paul Ruizendaal Content-Type: multipart/alternative; boundary="000000000000718a8605a6f3db3d" Subject: Re: [TUHS] non-blocking IO X-BeenThere: tuhs@minnie.tuhs.org X-Mailman-Version: 2.1.26 Precedence: list List-Id: The Unix Heritage Society mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: TUHS main list Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --000000000000718a8605a6f3db3d Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, May 31, 2020 at 7:10 AM Paul Ruizendaal wrote: > This behaviour seems to have continued into SysVR1, I=E2=80=99m not sure= when > EAGAIN came into use as a return value for this use case in the SysV > lineage. Maybe with SysVR3 networking? Actually, I'm pretty sure that was a product of the POSIX discussions. BSD already had networking an EWOULDBLOCK. We had argued about EWOULDBLOCK a great deal, we also were arguing about signal semantics. I've forgotten many of the details, Heinz may remember more than I do. EAGAIN was created as a compromise -- IIRC neither system had it yet. SVR3 networking was where it went into System V, although some of the AT&T representatives were none too happy about it. > > In the Research lineage, the above SysIII approach does not seem to exist= , > although the V8 manual page for open() says under BUGS "It should be > possible [...] to optionally call open without the possibility of hanging > waiting for carrier on communication lines.=E2=80=9D In the same location= for V10 > it reads "It should be possible to call open without waiting for carrier = on > communication lines.=E2=80=9D > > The July 1981 design proposals for 4.2BSD note that SysIII non-blocking > files are a useful feature and should be included in the new system. In > Jan/Feb 1982 this appears to be coded up, although not all affected files > are under SCCS tracking at that point in time. Non-blocking behaviour is > changed from the SysIII semantics, in that EWOULDBLOCK is returned instea= d > of 0 when progress is not possible. The non-blocking behaviour is extende= d > beyond TTY=E2=80=99s and pipes to sockets, with additional errors (such a= s > EINPROGRESS). At this time EWOULDBLOCK is not the same error number as > EGAIN. > My memory is that Keith was the BSD (CSRG) person at the POSIX meeting (he, Jim McGinness of DEC, and I created PAX at one point as a compromise). I wish I could remember all of the details, but this was all argued at the POSIX meetings. As I said before the folks from AT&T just wanted to take the SVID and rubber stamp it at the specification. Part of it the problem was they wanted to be free to do what things/make choices that the rest of us might or might not like (for instance, they did not want the sockets interface). > > It would seem that the differences between the BSD and SysV lineages in > this area persisted until around 2000 or so. > Yep - cause around then POSIX started to settle out and both systems began to follow it. --000000000000718a8605a6f3db3d Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable


On Sun, May 31, 2020 at 7:10= AM Paul Ruizendaal <pnr@planet.nl&= gt; wrote:
=C2= =A0This behaviour seems to have continued into SysVR1, I=E2=80=99m not sure= when EAGAIN came into use as a return value for this use case in the SysV = lineage. Maybe with SysVR3 networking?
Actually, I'= m pretty sure that was a product of the POSIX discussions.=C2=A0 BSD alread= y had networking an EWOULDBLOCK.=C2=A0 =C2=A0We had argued about EWOULDBLOC= K a great deal,=C2=A0we also were arguing about signal=C2=A0semantics.=C2= =A0 I've forgotten many of the details,=C2=A0Heinz may remember more th= an I do.=C2=A0 EAGAIN was created as a compromise -- IIRC neither system ha= d it yet.=C2=A0 =C2=A0SVR3 networking was where it went into System V, alth= ough some of the AT&T representatives were none too happy about it.
=C2=A0

In the Research lineage, the above SysIII approach does not seem to exist, = although the V8 manual page for open() says under BUGS "It should be p= ossible [...] to optionally call open without the possibility of hanging wa= iting for carrier on communication lines.=E2=80=9D In the same location for= V10 it reads "It should be possible to call open without waiting for = carrier on communication lines.=E2=80=9D

The July 1981 design proposals for 4.2BSD note that SysIII non-blocking fil= es are a useful feature and should be included in the new system. In Jan/Fe= b 1982 this appears to be coded up, although not all affected files are und= er SCCS tracking at that point in time. Non-blocking behaviour is changed f= rom the SysIII semantics, in that EWOULDBLOCK is returned instead of 0 when= progress is not possible. The non-blocking behaviour is extended beyond TT= Y=E2=80=99s and pipes to sockets, with additional errors (such as EINPROGRE= SS). At this time EWOULDBLOCK is not the same error number as EGAIN.
My memory is that Keith was the BSD (CSRG) person at the = POSIX meeting (he, Jim McGinness of DEC, and I created PAX at one point as = a compromise).=C2=A0 =C2=A0I wish I could remember all of the details, but = this was all argued at the POSIX meetings.

As I said b= efore the folks from AT&T just wanted to take the SVID and rubber stamp= it at the specification.=C2=A0 Part of it the problem was they wanted to b= e free to do what things/make choices that the rest of us might or might no= t like (for instance, they did not want the sockets interface).

=C2=A0

It would seem that the differences between the BSD and SysV lineages in thi= s area persisted until around 2000 or so.
Yep - c= ause around then POSIX started to settle out and both systems began to foll= ow it.

=C2=A0
--000000000000718a8605a6f3db3d--