projects
/
platform
/
upstream
/
weston.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
163f26f
)
backend-rdp: disconnect and free peers on compositor shutdown
author
Stefan Agner
<stefan@agner.ch>
Thu, 20 Jun 2019 15:39:36 +0000
(17:39 +0200)
committer
Simon Ser
<contact@emersion.fr>
Mon, 13 Jan 2020 14:22:30 +0000
(14:22 +0000)
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 <stefan@agner.ch>
libweston/backend-rdp/rdp.c
patch
|
blob
|
history
diff --git
a/libweston/backend-rdp/rdp.c
b/libweston/backend-rdp/rdp.c
index d21d52834e8715c7fb429e90dc2505d9fb936dc8..376ff0de4bc61b29a94c96cff2001ea8382fd886 100644
(file)
--- 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]);