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.
This commit is contained in:
Bert Vermeulen 2013-04-30 00:04:39 +02:00
parent 2a67abfe34
commit 0372864451
1 changed files with 4 additions and 10 deletions

View File

@ -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;
}