y_nnn: add run_bash attribute to debug kill issue when run already stopped
This commit is contained in:
@@ -56,6 +56,8 @@ struct arg_bash{
|
||||
pthread_t *thread_run_newbash;
|
||||
pthread_t *thread_run_waitbash;
|
||||
|
||||
int run_bash;
|
||||
|
||||
pthread_mutex_t *mut_bash_var;
|
||||
pthread_cond_t *cond_bash_var;
|
||||
int go_on;
|
||||
|
||||
@@ -115,7 +115,7 @@ void* runBashPrint(void *arg){
|
||||
struct arg_run_qlearn_bprint *arg_run=(struct arg_run_qlearn_bprint*)arg;
|
||||
struct RL_agent *rlAgent = arg_run->rlAgent;
|
||||
struct arg_bash *bash_arg = arg_run->bash_arg;
|
||||
|
||||
bash_arg->run_bash=1;
|
||||
struct status_qlearning *qlStatus = rlAgent->status;
|
||||
struct print_params * pprint = rlAgent->pprint;
|
||||
struct vehicle *car = rlAgent->car;
|
||||
@@ -181,6 +181,7 @@ void* runBashPrint(void *arg){
|
||||
}
|
||||
}
|
||||
printf("debug: end runBashPrint\n");
|
||||
bash_arg->run_bash=0;
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
@@ -120,7 +120,7 @@ struct arg_bash *create_arg_bash(){
|
||||
|
||||
b_arg->thread_run_newbash=NULL;
|
||||
b_arg->thread_run_waitbash=NULL;
|
||||
|
||||
b_arg->run_bash=0;
|
||||
return b_arg;
|
||||
}
|
||||
|
||||
@@ -191,12 +191,12 @@ void free_arg_bash(struct arg_bash *arg){
|
||||
free(arg->thread_launch);
|
||||
}
|
||||
if(arg->thread_run_newbash){
|
||||
if(ret_check_down_bash_new == 0)
|
||||
if(arg->run_bash && ret_check_down_bash_new == 0)
|
||||
pthread_join(*(arg->thread_run_newbash),NULL);
|
||||
free(arg->thread_run_newbash);
|
||||
}
|
||||
if(arg->thread_run_waitbash){
|
||||
if(ret_check_down_bash_current==0)
|
||||
if(arg->run_bash && ret_check_down_bash_current==0)
|
||||
pthread_join(*(arg->thread_run_waitbash),NULL);
|
||||
free(arg->thread_run_waitbash);
|
||||
}
|
||||
@@ -277,7 +277,7 @@ void kill_all_bash(struct arg_bash *arg){
|
||||
}
|
||||
pthread_mutex_unlock(arg->mut_bash_var);
|
||||
if(arg->thread_run_newbash){
|
||||
if(ret_check_down_bash_new == 0){
|
||||
if(ret_check_down_bash_new == 0 && arg->go_on){
|
||||
printf("debug: join thread_run_newbash\n");
|
||||
pthread_join(*(arg->thread_run_newbash),NULL);
|
||||
}else
|
||||
@@ -286,7 +286,7 @@ void kill_all_bash(struct arg_bash *arg){
|
||||
arg->thread_run_newbash=NULL;
|
||||
}
|
||||
if(arg->thread_run_waitbash){
|
||||
if(ret_check_down_bash_current == 0){
|
||||
if(ret_check_down_bash_current == 0 && arg->go_on){
|
||||
printf("debug: join thread_run_waitbash\n");
|
||||
pthread_join(*(arg->thread_run_waitbash),NULL);
|
||||
}else
|
||||
|
||||
Reference in New Issue
Block a user