libei: discard all events on the final unref

ei_disconnect() may queue an event during destroy, so let's get rid of that.

Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2020-08-07 11:39:50 +10:00
parent e6b410a56a
commit 69546a4802

View file

@ -115,6 +115,11 @@ static void
ei_destroy(struct ei *ei)
{
ei_disconnect(ei);
struct ei_event *e;
while ((e = ei_get_event(ei)) != NULL)
ei_event_unref(e);
ei->logger = logger_unref(ei->logger);
if (ei->backend_interface.destroy)
ei->backend_interface.destroy(ei, ei->backend);