From 037286445116d0f4f7f9b16a4a7353f3be207ff0 Mon Sep 17 00:00:00 2001 From: Bert Vermeulen Date: Tue, 30 Apr 2013 00:04:39 +0200 Subject: [PATCH] Don't remove stray source from the session after stopping It's up to the drivers and frontends to remove the sources they added to the session. Also don't tell the driver about a forced session stop more than once, because it's sloppy. Fixes bug 62. --- session.c | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/session.c b/session.c index 26620725..0c379c50 100644 --- a/session.c +++ b/session.c @@ -260,8 +260,11 @@ static int sr_session_run_poll(void) * just once per main event loop. */ g_mutex_lock(&session->stop_mutex); - if (session->abort_session) + if (session->abort_session) { sr_session_stop_sync(); + /* But once is enough. */ + session->abort_session = FALSE; + } g_mutex_unlock(&session->stop_mutex); } } @@ -377,15 +380,6 @@ SR_PRIV int sr_session_stop_sync(void) } } - /* - * Some sources may not be necessarily associated with a device. - * Those sources may still be present even after stopping all devices. - * We need to make sure all sources are removed, or we risk running the - * session in an infinite loop. - */ - while (session->num_sources) - sr_session_source_remove(session->sources[0].poll_object); - return SR_OK; }