2
0
forked from Ivasoft/DSView

fix capture thread stop bug

This commit is contained in:
dreamsourcelabTAI
2021-11-25 15:41:00 +08:00
parent 5740946c7c
commit f6ca1f6ed8
8 changed files with 161 additions and 71 deletions

View File

@@ -34,12 +34,10 @@
#define sr_warn(s, args...) sr_warn(LOG_PREFIX s, ## args)
#define sr_err(s, args...) sr_err(LOG_PREFIX s, ## args)
char DS_RES_PATH[256] = {0};
char DS_RES_PATH[500] = {0};
int bExportOriginalData = 0; //able export all data
int session_loop_stop_flag = 0;
/**
* @file
*
@@ -407,14 +405,12 @@ SR_API int sr_session_run(void)
session->running = TRUE;
session_loop_stop_flag = 0;
sr_info("Running...");
/* Do we have real sources? */
if (session->num_sources == 1 && session->pollfds[0].fd == -1) {
/* Dummy source, freewheel over it. */
while (session->num_sources && !session_loop_stop_flag) {
while (session->num_sources) {
if (session->abort_session) {
session->sources[0].cb(-1, -1, session->sources[0].cb_data);
break;
@@ -424,7 +420,7 @@ SR_API int sr_session_run(void)
}
} else {
/* Real sources, use g_poll() main loop. */
while (session->num_sources && !session_loop_stop_flag){
while (session->num_sources){
sr_session_iteration(TRUE);
}
}
@@ -491,8 +487,6 @@ SR_API int sr_session_stop(void)
return SR_ERR_BUG;
}
session_loop_stop_flag = 1; //set flag, the run loop will exit
g_mutex_lock(&session->stop_mutex);
if (session->running)
session->abort_session = TRUE;
@@ -841,8 +835,8 @@ void sr_set_firmware_resource_dir(const char *dir)
int len = strlen(DS_RES_PATH);
if (DS_RES_PATH[len-1] != '/'){
DS_RES_PATH[len] = '/';
DS_RES_PATH[len+1] = 0;
DS_RES_PATH[len] = '/';
DS_RES_PATH[len + 1] = 0;
}
}
}