Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Feb 1996 10:53:41 -0700 (MST)
From:      Terry Lambert <terry@lambert.org>
To:        bde@zeta.org.au (Bruce Evans)
Cc:        msmith@atrad.adelaide.edu.au, hackers@FreeBSD.ORG
Subject:   Re: device driver ioctl for nonblocking IO?
Message-ID:  <199602131753.KAA23393@phaeton.artisoft.com>
In-Reply-To: <199602130909.UAA19799@godzilla.zeta.org.au> from "Bruce Evans" at Feb 13, 96 08:09:43 pm

next in thread | previous in thread | raw e-mail | index | archive | help
> >> I've got a really stupid one here...
> >...
> >> If I open an fd on the device and fcntl(fd, F_SETFL, O_NONBLOCK), I get
> >> a mystery ioctl sent to my device.
> 
> >Argh.  FIONBIO.  Not enough coffee.  Sorry.
> 
> FIONBIO should be ignored unless you want to handle the races that can
> result when a process changes the flag while another process is blocked
> in an i/o.  The O_NONBLOCK flag (aka the O_NDELAY flag) (aka the FNDELAY
> flag) is better aka the FNONBLOCK flag in the kernel.  It is stored in
> the file descriptor flags and passed to all read and write functions
> after converting it to the IO_NDELAY.  It is also passed to the open,
> ioctl and close functions without conversion.

The race is easily handled by blocking the FIONBIO operation on the same
semaphore, I think.


					Terry Lambert
					terry@lambert.org
---
Any opinions in this posting are my own and not those of my present
or previous employers.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199602131753.KAA23393>