lkml.org 
[lkml]   [2009]   [Nov]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] pipe: don't block after data has been written
On 11/5/09 9:37 AM, Eric Dumazet wrote:
> Max Kellermann a écrit :
>> On 2009/11/05 17:27, Eric Dumazet<eric.dumazet@gmail.com> wrote:
>>> Your patch breaks many programs, that dont use poll()/select()
>>>
>>> char result[1000000];
>>> main()
>>> {
>>> computethings();
>>> write(1, buffer, 1000000);
>>> }
>>
>> Your code does not check the return value of write(). This is a bug.
>>
>
> Welcome to real world.

Yes in the real world there are bugs. The decision is to choose which
bug you are going to expose. If it was my decision I would make the code
work as documented, as Max wants to do.

I remember many years ago needing to fix some inetd-called server code
that got unexpected partial writes on blocking sockets. It was either
Solaris or HP/UX. So this is nothing new.

In fact I think that Linux will already do short writes if a signal is
received without restart set for the handler. I found several bugs last
year in glibc and libstdc++ fwrite and iostreams regarding that.
--
Zan Lynx
zlynx@acm.org

"Knowledge is Power. Power Corrupts. Study Hard. Be Evil."
--
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/

\
 
 \ /
  Last update: 2009-11-05 18:35    [W:0.051 / U:0.076 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site