[PATCH] 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
Tue Jul 10 01:20:24 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 new events.
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..2034716 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