[PATCH v1] shell: avoid endless sending event when meeting hanged-not-exited client

juan.j.zhao at linux.intel.com juan.j.zhao at linux.intel.com
Wed Jul 11 01:49:23 PDT 2012


From: Juan Zhao <juan.j.zhao at linux.intel.com>

When the client was hanged and not responsible for a long time, the server
 will generate endless and useless "set_busy_cursor" related events. And
 finally, weston crashed, with error message:"
  read error from connection 0x823b560: Connection reset by peer (104)
  read error: Connection reset by peer".

It's not necessary for shell-server to set_busy_cursor again and again.
So if the client is already unresponsive, we don't need to set busy cursor
 again.

Signed-off-by: Juan Zhao <juan.j.zhao at linux.intel.com>
---
 src/shell.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/src/shell.c b/src/shell.c
index 66c9d64..accbfb1 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -896,6 +896,11 @@ ping_timeout_handler(void *data)
 	struct shell_surface *shsurf = data;
 	struct weston_seat *seat;
 
+	/* client is already unresponding,
+	 * no need to generate extra set_cursor action */
+	if (shsurf->unresponsive)
+		return 1;
+
 	/* Client is not responding */
 	shsurf->unresponsive = 1;
 
-- 
1.7.11



More information about the wayland-devel mailing list