X-Git-Url: http://sigrok.org/gitweb/?a=blobdiff_plain;f=session.c;h=0c379c50259fc3802564377107fc02cd5c9bb454;hb=695d0e1efa819dc98914ce1baec388c8734e98a7;hp=266207259ca3c82e9c42c76208af3ae8afb88880;hpb=681803dfdeeaae66c48d6c45da194be0c6789deb;p=libsigrok.git 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; }