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>