From: Philip Withnall <phi...@tecnocode.co.uk>

This happens if the socket has been gracefully closed.

[KAO: It prevents a potential infinite loop when using a different
event handling mechanism than epoll, if said mechanism cannot
distinguish EOF from regular read (e.g. select).]
---
 src/wayland-server.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/wayland-server.c b/src/wayland-server.c
index 674aeca..85741cb 100644
--- a/src/wayland-server.c
+++ b/src/wayland-server.c
@@ -260,7 +260,7 @@ wl_client_connection_data(int fd, uint32_t mask, void *data)
        len = 0;
        if (mask & WL_EVENT_READABLE) {
                len = wl_connection_read(connection);
-               if (len < 0 && errno != EAGAIN) {
+               if (len == 0 || (len < 0 && errno != EAGAIN)) {
                        wl_client_destroy(client);
                        return 1;
                }
-- 
1.9.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to