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=-0.8 required=5.0 tests=DKIM_INVALID,DKIM_SIGNED, HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 28319 invoked from network); 31 May 2020 16:47:16 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 31 May 2020 16:47:16 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 7934C9C94F; Mon, 1 Jun 2020 02:47:14 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id 0526A9C5E5; Mon, 1 Jun 2020 02:46:53 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=bsdimp-com.20150623.gappssmtp.com header.i=@bsdimp-com.20150623.gappssmtp.com header.b="0sqhP1sh"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 0DF389C5E5; Mon, 1 Jun 2020 02:46:52 +1000 (AEST) Received: from mail-qv1-f41.google.com (mail-qv1-f41.google.com [209.85.219.41]) by minnie.tuhs.org (Postfix) with ESMTPS id BF0879C1EA for ; Mon, 1 Jun 2020 02:46:50 +1000 (AEST) Received: by mail-qv1-f41.google.com with SMTP id dh1so3389345qvb.13 for ; Sun, 31 May 2020 09:46:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bsdimp-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=qfMc4X0+U9HfUXar4vdfPvC+LBGXUfZL+nDu1BT8wA4=; b=0sqhP1shdkJHXV/tLwjf81IvJcuB7nhsg0Sr2e89//G0YJOJduNB4R12UqKU8nM0vC OJKS/Vl5drSH5kLCwFoWqOntHHDiICyhr3g2G/UtCDf67C8cvfZQE5YDbCHnNQiVA54t Z7VAjQLxNeIpBOzZot0UHJdgCcQXzJqAyb9h7WxTDgtqaQNZsEtOyObuWFtJG5xsjvN3 7Y8/O0pTcGdy0TGrB40COmsvPoqn/W67G/uF7czB3QDxedDKxOQSlBu/t0Fag/M4Is/V LJ7qsGCHGdk8pnSX0CoxN4f7q3E8k2CCcgHnZ5/dkrbc5aBZx2zExh0h5z48z/rXMXYW S6EQ== 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=qfMc4X0+U9HfUXar4vdfPvC+LBGXUfZL+nDu1BT8wA4=; b=phFhcBtgnqqjiZUacTQv6yalG+xXDIVfl0iJu8ClusKQWJaWmOrCLSCPIB104DX9YL jnmXpvii2XqGc+Zn4X+ZTpw6oZHhOSyT2JlvBQ0ky72d89e++ONLQ2TAkjffMLx0l1VF TIiOjHjbi3RiX1adCA+TIkYcy1eSpygLcceN4m1kHGboIkKJFMs2+B7Bc2d1/AxXJvgt p2h+7OGb7DeoUqzvNq3b8RiMhD9IYLtcxTf/JKcboVFOjvy/ZHH/ziUBGOY0/jjwWRA3 r/jy+fqUDs9yAYgfWksghcKPSx5QZO0ztqKFZ5XWg+GxpwIeW+P4Vdgug5L0DTjdKjSQ PoQA== X-Gm-Message-State: AOAM532eb5zCswHwnvG/ywNXKZ7XWgmBEwUwJVcD7wb5T2WhcnHD51fA rePJIFWySi1wvnjp5fdVouMr2aIK14BjR3Xs07S43w6q X-Google-Smtp-Source: ABdhPJwmPAZa9qRWRxQVfW3opZVTW7G4z2jSEu+n2F8Gm4/3GSn+v7FNG4RmFGhXSpU+NwpCtCXClWapXt+ozmHaEss= X-Received: by 2002:a05:6214:17cb:: with SMTP id cu11mr571531qvb.202.1590943609758; Sun, 31 May 2020 09:46:49 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Warner Losh Date: Sun, 31 May 2020 10:46:37 -0600 Message-ID: To: Clem Cole Content-Type: multipart/alternative; boundary="000000000000b7b93205a6f46c1c" 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 , Paul Ruizendaal Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" --000000000000b7b93205a6f46c1c Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Sorry to top post, but LSX or Miniunix had non blocking I/O as well. It was in one of the documents that Clem scanned in the last year. It specifically was an experiment into how to do it. Warner On Sun, May 31, 2020, 10:07 AM Clem Cole wrote: > > > 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 sur= e 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 hangin= g >> waiting for carrier on communication lines.=E2=80=9D In the same locatio= n 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 file= s >> are under SCCS tracking at that point in time. Non-blocking behaviour is >> changed from the SysIII semantics, in that EWOULDBLOCK is returned inste= ad >> of 0 when progress is not possible. The non-blocking behaviour is extend= ed >> beyond TTY=E2=80=99s and pipes to sockets, with additional errors (such = as >> 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 a= ll > 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 migh= t > 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 bega= n > to follow it. > > > --000000000000b7b93205a6f46c1c Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Sorry to top post, but LSX or Miniunix had non blocking I= /O as well. It was in one of the documents that Clem scanned in the last ye= ar. It specifically was an experiment into how to do it.
<= br>
Warner=C2=A0

On Sun, May 31, 2020, 10:07 AM= Clem Cole <clemc@ccc.com> wrote= :


On Sun, May 31, 2020 at 7:10 AM Paul Ruizendaal <pnr@planet.n= l> 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 S= ysV lineage. Maybe with SysVR3 networking?
Actually, I&= #39;m pretty sure that was a product of the POSIX discussions.=C2=A0 BSD al= ready had networking an EWOULDBLOCK.=C2=A0 =C2=A0We had argued about EWOULD= BLOCK 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= than I do.=C2=A0 EAGAIN was created as a compromise -- IIRC neither system= had it yet.=C2=A0 =C2=A0SVR3 networking was where it went into System V, a= lthough some of the AT&T representatives were none too happy about it.<= /div>
=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
--000000000000b7b93205a6f46c1c--