From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out-so.shaw.ca (smtp-out-so.shaw.ca [64.59.136.137]) by sourceware.org (Postfix) with ESMTPS id 84F963959C81 for ; Wed, 11 Mar 2020 21:55:53 +0000 (GMT) Received: from [192.168.1.114] ([24.64.172.44]) by shaw.ca with ESMTP id C9KQjGzeGYYpxC9KRj0fgG; Wed, 11 Mar 2020 15:55:52 -0600 X-Authority-Analysis: v=2.3 cv=OubUNx3t c=1 sm=1 tr=0 a=kiZT5GMN3KAWqtYcXc+/4Q==:117 a=kiZT5GMN3KAWqtYcXc+/4Q==:17 a=jpOVt7BSZ2e4Z31A5e1TngXxSK0=:19 a=IkcTkHD0fZMA:10 a=bVP7E8VSAAAA:8 a=0GJe_BP2AAAA:8 a=xNgdfyqHAAAA:8 a=fjDFcf429ns8VtWUCqQA:9 a=QEXdDO2ut3YA:10 a=aVYYs1xEZsgA:10 a=6iwDsAHhQBkA:10 a=Ly10aoh6cllcPZKPqPQE:22 Reply-To: "cygwin@cygwin.com" Subject: Re: Setting termios VMIN > 0 and VTIME > 0 on non blocking file To: cygwin@cygwin.com References: <9e4c6428-59de-df07-9e33-44ba95d5497f@gmail.com> From: Brian Inglis Autocrypt: addr=Brian.Inglis@SystematicSw.ab.ca; prefer-encrypt=mutual; keydata= mQENBFg15Q0BCADc1LTYJN/oVKOJoXpIo+5yy+sBv535qYNRh5CFqp3pPZwIy6oILNKprWph 8J+sXMqYd5H0G1jMDlXendiQbn9SiORuqI7xkV8vzguoFEMhNTxnO1pOQjqRnEnG/W7/5Yy+ DkcCv+Y4O3NX3wol8yP+FaEx4EEEifaO5ZhC1U/ilvHvxE0wjNhRG6AqlvqX6J09bxkJC8Xd 00MZWotDHtiq/wnd8YqyDmf0aJceGxSetHnqn/Cs3WiylEEUy2x/FqKbsBxUJHGQeeRTFAW1 ii08djCemxdE+romE/M9J9CVisSZImbXMSilX6Z2Qtz0lYPkY0EqbiKo8o9zlkIPhaqJABEB AAG0REJyaWFuIEluZ2xpcyAoU3lzdGVtYXRpYyBTb2Z0d2FyZSkgPEJyaWFuLkluZ2xpc0BT eXN0ZW1hdGljU1cuYWIuY2E+iQFVBBMBAgA/AhsDBgsJCAcDAgYVCAIJCgsEFgIDAQIeAQIX gBYhBEy/sJ49FaN/AfIQJjY9ewCxhxqTBQJai9F5BQkNRMzsAAoJEDY9ewCxhxqThnAH/Rau 2+nxwRYdOHDkvMJSyJZUxowkxxzfttQVfxrZIhooF99LGqd3ANltSidybJAbKDLoH+5jRvWF fobzOs93Uw73/52Rurv0nY40mnCAw2vE3JNYgWm8V09Ff4J64ElylrAAU60XoUxMD8Tbflby fVu3LO74pR/hCByNGK019TXJhIPfSU51hXQwLgqAKT4FRGw5gYyqCSS5zoRpa/zNENAPKG/g 5H8ar58eJB9QyJA4iNTLa/3rPF/kO9MqfRLlBLvmyveyYOcGs5wOgjt/RT2eA3Zun18l7EIE 2L2J1tbqLmSpswSW3URnW3KsfgILNC9pAVR00xvO09ulrUXiOX65AQ0EWDXlDQEIAM5GX98w WEzP1jyuWGfNI0s2lUJDTVH1WLpg1N+lQ9sjwCVBeJEdhtZYU7VsgmjPj+H0tkBFYe2olAkk BAmdP7yrqUTK5zw12kf5BJeF94cikGcFRCvdGVk9/uSfy3HZePvr8NV5LPCxLIE6bJCS8L5A CgdNkrD3CLM1zePyiQ0dQ3+6Bjq27b3Y1UauiyKlOquCVkfrDk/y3OfFhbiJX8pwM0mICyls 8p9iM7yg+g1PbdoA99OrFc7JKllHRGDLQ0B/HKAPgNnLCenzDuV/d+N1RDbbpa0c/uvmoptR Aejlq3HszXYQ9wTmu8OwVSITSkzgP1lKzyDPZS9SGvlrQp8AEQEAAYkBPAQYAQIAJgIbDBYh BEy/sJ49FaN/AfIQJjY9ewCxhxqTBQJai9GnBQkNRM0aAAoJEDY9ewCxhxqTuL8H/ivw0VXX lQW4c9O8XsMafDcEyV23MH4fdZACss+ZWluda7xIRo78GCLXxARHwJdOE9Jk9+/fDQOTZd4m KW0trLCfWvJnwNJfOLbqse7eydvgdj2UrTpy4DO/5+mAw/ilgZpEGgwMwyqb/2kFiKK7Q64B NKl8Y2kRXltaiXfqyvG2U/NiE4GOPA3yZgXs4Mzd1pzV/nkEIzGkneaeE5WGEWj/8dCnn6a3 zIuq0L59QInxKsTdt10OQiUoRKl8Nx0vDCOzMy0wlJc349gJbQBCAZcumtBBBqAzCAmJ3J7T 7ew8hznAEmOwr+LkSOdXFzEjdfTaryhN1AsRLYVUNloEWNA= Organization: Systematic Software Message-ID: <5be321d9-10c2-0853-b716-2abd10a4db3a@SystematicSw.ab.ca> Date: Wed, 11 Mar 2020 15:55:50 -0600 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:68.0) Gecko/20100101 Thunderbird/68.5.0 MIME-Version: 1.0 In-Reply-To: <9e4c6428-59de-df07-9e33-44ba95d5497f@gmail.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-CA Content-Transfer-Encoding: 8bit X-CMAE-Envelope: MS4wfBIB8QTO0WjsTahCq+fsbsqacRxWGjDU943Z7cbV4m6B95MFXGGw+67zgr60PwSvjPvP2E6WYsYtL3jsRM7cZYdXGHKErc/1wbWTN/qXDrU/uin+xQTv rD3Xfh1YSApA2+aBnczui0x6xUAmMQ4hTlIIMOW0Axx0KchRwXK59dzkbXTbWAM/qGEX9h+FJMjpCw== X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: cygwin@cygwin.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Cygwin mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 11 Mar 2020 21:55:55 -0000 On 2020-03-11 14:48, Åke Rehnman via Cygwin wrote: > opening a file (serial port) with O_NONBLOCK and subsequently setting termios > VMIN and VTIME > 0 makes read() never ever return any data (returns EAGAIN > indefinitely). > Don't ask my why one would want to do something like this but apparently the > "screen" program think this is a good way of doing things... > Nevertheless not returning any data ever seems wrong. > Any insight on how it is supposed to work is welcome. VMIN > 0 || VTIME > 0 implies blocking; O_NONBLOCK implies SIGIO delivery; see: https://www.tldp.org/HOWTO/pdf/Serial-Programming-HOWTO.pdf https://www.cmrr.umn.edu/~strupp/serial.html https://en.wikibooks.org/wiki/Serial_Programming/termios also read the man pages carefully and *assume* nothing; functions should work *exactly* as documented: there be dragons! You have to set up for, or adapt to, the expected input speed and quantity, the interrupt response overhead (hardware, OS, and C signal), and what else you want to be able to do at the same time. -- Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada This email may be disturbing to some readers as it contains too much technical detail. Reader discretion is advised.