[PATCH 4/5] Use blocking output for the pipe
Bill Spitzak
spitzak at gmail.com
Mon Mar 19 07:33:00 PDT 2012
On 03/19/2012 01:57 AM, Pekka Paalanen wrote:
>> --- a/src/connection.c
>> +++ b/src/connection.c
>> @@ -277,8 +277,7 @@ wl_connection_data(struct wl_connection *connection, uint32_t mask)
>> msg.msg_flags = 0;
>>
>> do {
>> - len = sendmsg(connection->fd,&msg,
>> - MSG_NOSIGNAL | MSG_DONTWAIT);
>> + len = sendmsg(connection->fd,&msg, MSG_NOSIGNAL);
>> } while (len< 0&& errno == EINTR);
>>
>> if (len == -1&& errno == EPIPE) {
>
> Are you sure this won't reintroduce the following issue?
> http://lists.freedesktop.org/archives/wayland-devel/2012-February/002394.html
I think you are right. However it looks like the current code fails on
any EAGAIN and disconnects the client. If I understand the intention of
the bug report, it should do nothing if the output ring buffer is not
full, and if it is full it should empty it (or otherwise throw stuff
away) and still not fail the client.
> Btw. Bill, good job with sending git patches. One more thing you could
> do, tell git your email address so it goes into the history right[1]:
> $ git config --global user.email you at yourdomain.example.com
Okay, that is done. They may want to fix it so I don't have to type my
email in so many times, I had to put it in as user.email,
sendemail.from, sendemail.envelopesender, and sendemail.smtpuser.
More information about the wayland-devel
mailing list