From: Brian Inglis <Brian.Inglis@SystematicSw.ab.ca>
To: cygwin@cygwin.com
Subject: Re: Setting termios VMIN > 0 and VTIME > 0 on non blocking file
Date: Wed, 11 Mar 2020 15:55:50 -0600 [thread overview]
Message-ID: <5be321d9-10c2-0853-b716-2abd10a4db3a@SystematicSw.ab.ca> (raw)
In-Reply-To: <9e4c6428-59de-df07-9e33-44ba95d5497f@gmail.com>
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.
next prev parent reply other threads:[~2020-03-11 21:55 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <mailman.1473.1583981776.15804.cygwin@cygwin.com>
2020-03-11 20:48 ` Åke Rehnman
2020-03-11 21:55 ` Brian Inglis [this message]
2020-03-12 1:01 ` Norton Allen
2020-03-12 1:04 ` Åke Rehnman
2020-03-12 1:08 ` Norton Allen
2020-03-12 1:39 ` Åke Rehnman
2020-03-12 8:05 ` Thomas Dickey
2020-03-12 11:01 ` Åke Rehnman
2020-03-12 19:48 ` Achim Gratz
2020-03-12 11:40 ` Corinna Vinschen
2020-03-12 13:32 ` Åke Rehnman
2020-03-12 14:13 ` Corinna Vinschen
2020-03-12 16:42 ` Åke Rehnman
2020-03-13 10:02 ` Corinna Vinschen
2020-03-12 14:20 ` Åke Rehnman
2020-03-12 14:44 ` Corinna Vinschen
2020-03-12 15:08 ` Corinna Vinschen
2020-03-12 17:04 ` Åke Rehnman
2020-03-13 10:12 ` Corinna Vinschen
2020-03-14 10:23 ` Åke Rehnman
2020-03-14 10:36 ` Åke Rehnman
2020-03-16 9:35 ` Corinna Vinschen
2020-03-17 12:16 ` Corinna Vinschen
2020-03-17 15:54 ` Åke Rehnman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5be321d9-10c2-0853-b716-2abd10a4db3a@SystematicSw.ab.ca \
--to=brian.inglis@systematicsw.ab.ca \
--cc=cygwin@cygwin.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).