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

Juan Zhao juan.j.zhao at linux.intel.com
Tue Jul 10 01:23:39 PDT 2012


Please ignore this mail!
Sorry for the TYPO!

Thanks,
Juan

On Tue, 2012-07-10 at 01:20 -0700, juan.j.zhao at linux.intel.com wrote: 
> 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) /*This is error*/
> +		return 1;
> +
>  	/* Client is not responding */
>  	shsurf->unresponsive = 1;
>  




More information about the wayland-devel mailing list