Messages in this thread | | | Date | Mon, 01 Oct 2007 22:53:24 +0400 | From | Michael Tokarev <> | Subject | Re: F_DUPFD_CLOEXEC implementation |
| |
Al Viro wrote: > On Mon, Oct 01, 2007 at 11:07:15AM +0100, Denys Vlasenko wrote: >> Also attached is ndelaytest.c which can be used to test that >> send(MSG_DONTWAIT) indeed is failing with EAGAIN if write would block >> and that other processes never see O_NONBLOCK set. >> >> Comments? > > Never send patches during or approaching hangover? > * it's on a bunch of cyclic lists. Have its neighbor > go away while you are doing all that crap => boom > * there's that thing call current position... It gets buggered. > * overwriting it while another task might be in the middle of > syscall involving it => boom > * non-cooperative tasks reading *in* *parallel* from the same > opened file are going to have a lot more serious problems than agreeing > on O_NONBLOCK anyway, so I really don't understand what the hell is that for.
Good summary... ;)
But for the last part of the last item - sometimes, definitely more than once, I wondered why there's no equivalent to recv(MSG_DONTWAIT) for non-sockets -- why for sockets it's as simple as adding an option (a single bit), while for all the rest it requires two fcntl calls... Sometimes it's handy. ;)
Not that I'm arguing for or against such a feature anyway..
/mjt - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |