- session->sources[i].poll_object);
- }
- /*
- * We want to take as little time as possible to stop
- * the session if we have been told to do so. Therefore,
- * we check the flag after processing every source, not
- * just once per main event loop.
- */
- g_mutex_lock(&session->stop_mutex);
- if (session->abort_session) {
- sr_session_stop_sync(session);
- /* But once is enough. */
- session->abort_session = FALSE;
+ source->poll_object);
+ /*
+ * We want to take as little time as possible to stop
+ * the session if we have been told to do so. Therefore,
+ * we check the flag after processing every source, not
+ * just once per main event loop.
+ */
+ if (!stopped) {
+ stopped = sr_session_check_aborted(session);
+ stop_checked = TRUE;
+ }