From: Stefan Agner Date: Thu, 20 Jun 2019 15:39:36 +0000 (+0200) Subject: backend-rdp: disconnect and free peers on compositor shutdown X-Git-Tag: upstream/9.0.0~194 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=edcab103daed5ce1691cb95e4eda02bcb1a0c3ab;p=platform%2Fupstream%2Fweston.git backend-rdp: disconnect and free peers on compositor shutdown Properly disconnect and free all RDP peers on compositor shutdown. This makes sure that all events are disabled, which should avoid any race conditions with pending events. Signed-off-by: Stefan Agner --- diff --git a/libweston/backend-rdp/rdp.c b/libweston/backend-rdp/rdp.c index d21d5283..376ff0de 100644 --- a/libweston/backend-rdp/rdp.c +++ b/libweston/backend-rdp/rdp.c @@ -663,8 +663,17 @@ rdp_destroy(struct weston_compositor *ec) { struct rdp_backend *b = to_rdp_backend(ec); struct weston_head *base, *next; + struct rdp_peers_item *rdp_peer, *tmp; int i; + wl_list_for_each_safe(rdp_peer, tmp, &b->output->peers, link) { + freerdp_peer* client = rdp_peer->peer; + + client->Disconnect(client); + freerdp_peer_context_free(client); + freerdp_peer_free(client); + } + for (i = 0; i < MAX_FREERDP_FDS; i++) if (b->listener_events[i]) wl_event_source_remove(b->listener_events[i]);