mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice
synced 2025-12-29 08:47:13 +00:00
red_channel: Use the channel core to remove the stream watch on disconnect
We allow channels to have different core implementations, but we were relying on reds_stream_free to remove the stream watch on disconnect, and reds_stream_free always uses the qemu core implementation. So far we were getting away with this since all the alternative core implementations always return NULL from watch_add. But: 1) The code before this patch clearly was not correct, since it was matching a channel-core watch_add with a qemu-core watch_remove 2) I plan to move red_worker over to actually using an alternative watch implementation at which point this becomes a real problem Signed-off-by: Hans de Goede <hdegoede@redhat.com>
This commit is contained in:
parent
63e1514ccb
commit
b023f85ebd
@ -1194,6 +1194,10 @@ void red_channel_client_disconnect(RedChannelClient *rcc)
|
||||
if (rcc->channel->channel_cbs.pre_disconnect) {
|
||||
rcc->channel->channel_cbs.pre_disconnect(rcc);
|
||||
}
|
||||
if (rcc->stream->watch) {
|
||||
rcc->channel->core->watch_remove(rcc->stream->watch);
|
||||
rcc->stream->watch = NULL;
|
||||
}
|
||||
reds_stream_free(rcc->stream);
|
||||
rcc->stream = NULL;
|
||||
red_channel_remove_client(rcc);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user