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,MAILING_LIST_MULTI,RCVD_IN_DNSWL_NONE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 15638 invoked from network); 2 Jun 2020 08:23:02 -0000 Received: from minnie.tuhs.org (45.79.103.53) by inbox.vuxu.org with ESMTPUTF8; 2 Jun 2020 08:23:02 -0000 Received: by minnie.tuhs.org (Postfix, from userid 112) id 268C89CA98; Tue, 2 Jun 2020 18:23:00 +1000 (AEST) Received: from minnie.tuhs.org (localhost [127.0.0.1]) by minnie.tuhs.org (Postfix) with ESMTP id E8BED9C5F1; Tue, 2 Jun 2020 18:22:25 +1000 (AEST) Authentication-Results: minnie.tuhs.org; dkim=pass (1024-bit key; unprotected) header.d=planet.nl header.i=@planet.nl header.b="UW7Irxms"; dkim-atps=neutral Received: by minnie.tuhs.org (Postfix, from userid 112) id 6DC979C5F1; Tue, 2 Jun 2020 18:22:20 +1000 (AEST) Received: from cpsmtpb-ews10.kpnxchange.com (cpsmtpb-ews10.kpnxchange.com [213.75.39.15]) by minnie.tuhs.org (Postfix) with ESMTP id AE0D893D46 for ; Tue, 2 Jun 2020 18:22:15 +1000 (AEST) Received: from cpsps-ews13.kpnxchange.com ([10.94.84.180]) by cpsmtpb-ews10.kpnxchange.com with Microsoft SMTPSVC(8.5.9600.16384); Tue, 2 Jun 2020 10:22:13 +0200 X-Brand: 7abm2Q== X-KPN-SpamVerdict: e1=0;e2=0;e3=0;e4=(e1=10;e3=10;e2=11;e4=10);EVW:Whi te;BM:NotScanned;FinalVerdict:Clean X-CMAE-Analysis: v=2.3 cv=O/OiQC1W c=1 sm=1 tr=0 cx=a_idp_e a=aIJzBKXFL4aO3PtWP49Erg==:117 a=soxbC+bCkqwFbqeW/W/r+Q==:17 a=x1i13A_MHe4A:10 a=kj9zAlcOel0A:10 a=nTHF0DUjJn0A:10 a=AoeSMSUmAAAA:8 a=TfDjty7NOvrst2t6yzYA:9 a=CjuIK1q_8ugA:10 a=IA4qIw_M-6cA:10 a=2UY7SMgi64q-0UtCmZ5F:22 X-CM-AcctID: kpn@feedback.cloudmark.com Received: from smtp.kpnmail.nl ([195.121.84.43]) by cpsps-ews13.kpnxchange.com over TLS secured channel with Microsoft SMTPSVC(8.5.9600.16384); Tue, 2 Jun 2020 10:22:13 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=planet.nl; s=planet01; h=to:date:message-id:subject:mime-version:content-type:from; bh=6MFFBSLV/G5lMsDqh8IWymeXS+GMBU4BYr2Np0MM2q0=; b=UW7IrxmseG1PT+nnDpSFC81jdtZfpX9jw3wyuDG+IJNQrWbW+GdMIwcS8vQBdvhAOy8AVbR5+Eenz l8EVy0BO+ywsDDH3HoFVJbqGccVA3og2p44aa+c8vmi7tLNvsXWXcx9z055xIWL+pV+vpXhUb2yCO9 KMONTZ2QFVBu5bpk= X-KPN-VerifiedSender: Yes X-CMASSUN: 33|0TlSRxrI0QX5BpxVsFTi7jv0S/MIBUhKQi17BhbcOl/qjlo1ZVnYrJwpkp6Tj4W X+bW9VhPFaXSlNxwKko4xFQ== X-Originating-IP: 80.101.112.122 Received: from mba2.fritz.box (sqlite.xs4all.nl [80.101.112.122]) by smtp.kpnmail.nl (Halon) with ESMTPSA id 292d6fdb-a4aa-11ea-93ae-005056ab1411; Tue, 02 Jun 2020 10:22:13 +0200 (CEST) From: Paul Ruizendaal Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Mime-Version: 1.0 (Mac OS X Mail 12.4 \(3445.104.11\)) Message-Id: <46A39BDD-A854-40EF-B82A-176F1AB7B92E@planet.nl> Date: Tue, 2 Jun 2020 10:22:12 +0200 To: TUHS main list X-Mailer: Apple Mail (2.3445.104.11) X-OriginalArrivalTime: 02 Jun 2020 08:22:13.0244 (UTC) FILETIME=[EB08E3C0:01D638B6] X-RcptDomain: minnie.tuhs.org Subject: [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: , Errors-To: tuhs-bounces@minnie.tuhs.org Sender: "TUHS" > > when you're working below the reliable stream level, you can't = just do a > blocking 'read' for a packet; it pretty much has to be = asynchronous > Oh, you should look at the early BBN TCP for V6 Unix - they would have = faced the same issue, with their TCP process. They did have the capac() = call (which kind of alleviates the need for non-blocking I/O), but that = may have only been available for ports/pipes; I'm not sure if the = ARPANET device supported it. I did. There is capac() support also for the IMP interface: https://www.tuhs.org/cgi-bin/utree.pl?file=3DBBN-V6/dmr/imp11a.c (see bottom two functions) BBN took the same approach as Research: with capac() or select() one can = prevent blocking on read() and write().