From: KOSAKI Motohiro Date: 2011-08-07T18:53:38+09:00 Subject: [ruby-core:38830] Re: [Ruby 1.9 - Bug #5138][Open] Add nonblocking IO that does not use exceptions for EOF and EWOULDBLOCK 2011/8/6 Tanaka Akira : > 2011/8/4 KOSAKI Motohiro : > >> but look, datagram_poll() has another 30~ caller. (e.g. raw socket) > >> IOW, it's only a workaround for udp based broken application. not a >> fix. If I understand correctly, >> Linux kernel people don't have a plan to fix this issue by in-kernel >> change because it makes >> performance hurt. >> >> But, of course, if you are only talking about udp applications, you are correct. > > I assumed UDP, TCP and Unix socket. > I don't know other sockets well. > > select() with blocking read works too well to feel it is broken. > Is it a common sense in the kernel people that such applications are broken? I don't know which broken or not broken. But they repeatedly refuse to change this behavior. Example, http://groups.google.com/group/kernelarchive/browse_thread/thread/799ec608f1b7ea2d/43d21499059c922a?hl=ja&lnk=gst&q=select+checksum++socket#43d21499059c922a > Apart from that, you picked up raw socket as an example. > Is it mean that raw socket has a limitation which cannot receive a datagram > with wrong checksum? Yes, it can be blocked if the packet has a wrong checksum.