mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 13:17:31 +00:00 
			
		
		
		
	Fix pointer unchecked issue in thread-mgr.c (#960)
And refine the code format of thread_manager.h
This commit is contained in:
		
							parent
							
								
									9eb3ed6b15
								
							
						
					
					
						commit
						ee97e30a1a
					
				|  | @ -344,13 +344,13 @@ wasm_cluster_spawn_exec_env(WASMExecEnv *exec_env) | |||
| { | ||||
|     WASMCluster *cluster = wasm_exec_env_get_cluster(exec_env); | ||||
|     wasm_module_inst_t module_inst = get_module_inst(exec_env); | ||||
|     wasm_module_t module = wasm_exec_env_get_module(exec_env); | ||||
|     wasm_module_t module; | ||||
|     wasm_module_inst_t new_module_inst; | ||||
|     WASMExecEnv *new_exec_env; | ||||
|     uint32 aux_stack_start, aux_stack_size; | ||||
|     uint32 stack_size = 8192; | ||||
| 
 | ||||
|     if (!module) { | ||||
|     if (!module_inst || !(module = wasm_exec_env_get_module(exec_env))) { | ||||
|         return NULL; | ||||
|     } | ||||
| 
 | ||||
|  | @ -373,11 +373,9 @@ wasm_cluster_spawn_exec_env(WASMExecEnv *exec_env) | |||
|         return NULL; | ||||
|     } | ||||
| 
 | ||||
|     if (module_inst) { | ||||
|         /* Set custom_data to new module instance */ | ||||
|         wasm_runtime_set_custom_data_internal( | ||||
|             new_module_inst, wasm_runtime_get_custom_data(module_inst)); | ||||
|     } | ||||
|     /* Set custom_data to new module instance */ | ||||
|     wasm_runtime_set_custom_data_internal( | ||||
|         new_module_inst, wasm_runtime_get_custom_data(module_inst)); | ||||
| 
 | ||||
|     new_exec_env = wasm_exec_env_create_internal(new_module_inst, | ||||
|                                                  exec_env->wasm_stack_size); | ||||
|  |  | |||
|  | @ -15,65 +15,9 @@ | |||
| #ifdef __cplusplus | ||||
| extern "C" { | ||||
| #endif | ||||
| 
 | ||||
| #if WASM_ENABLE_DEBUG_INTERP != 0 | ||||
| #define WAMR_SIG_TRAP (5) | ||||
| #define WAMR_SIG_STOP (19) | ||||
| #define WAMR_SIG_TERM (15) | ||||
| #define WAMR_SIG_SINGSTEP (0x1ff) | ||||
| 
 | ||||
| #define STATUS_RUNNING (0) | ||||
| #define STATUS_STOP (1) | ||||
| #define STATUS_EXIT (2) | ||||
| #define STATUS_STEP (3) | ||||
| 
 | ||||
| #define IS_WAMR_TERM_SIG(signo) ((signo) == WAMR_SIG_TERM) | ||||
| 
 | ||||
| #define IS_WAMR_STOP_SIG(signo) \ | ||||
|     ((signo) == WAMR_SIG_STOP || (signo) == WAMR_SIG_TRAP) | ||||
| 
 | ||||
| typedef struct WASMCurrentEnvStatus { | ||||
|     uint64 signal_flag : 32; | ||||
|     uint64 step_count : 16; | ||||
|     uint64 running_status : 16; | ||||
|     korp_mutex wait_lock; | ||||
|     korp_cond wait_cond; | ||||
| } WASMCurrentEnvStatus; | ||||
| 
 | ||||
| typedef struct WASMDebugInstance WASMDebugInstance; | ||||
| 
 | ||||
| WASMCurrentEnvStatus * | ||||
| wasm_cluster_create_exenv_status(); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_destroy_exenv_status(WASMCurrentEnvStatus *status); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_send_signal_all(WASMCluster *cluster, uint32 signo); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_stopped(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_waiting_run(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_wait_thread_status(WASMExecEnv *exec_env, uint32 *status); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_exited(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_continue(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_send_signal(WASMExecEnv *exec_env, uint32 signo); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_step(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_set_debug_inst(WASMCluster *cluster, WASMDebugInstance *inst); | ||||
| 
 | ||||
| #endif | ||||
| typedef struct WASMCluster { | ||||
|     struct WASMCluster *next; | ||||
|  | @ -183,6 +127,65 @@ void | |||
| wasm_cluster_spread_custom_data(WASMModuleInstanceCommon *module_inst, | ||||
|                                 void *custom_data); | ||||
| 
 | ||||
| #if WASM_ENABLE_DEBUG_INTERP != 0 | ||||
| #define WAMR_SIG_TRAP (5) | ||||
| #define WAMR_SIG_STOP (19) | ||||
| #define WAMR_SIG_TERM (15) | ||||
| #define WAMR_SIG_SINGSTEP (0x1ff) | ||||
| 
 | ||||
| #define STATUS_RUNNING (0) | ||||
| #define STATUS_STOP (1) | ||||
| #define STATUS_EXIT (2) | ||||
| #define STATUS_STEP (3) | ||||
| 
 | ||||
| #define IS_WAMR_TERM_SIG(signo) ((signo) == WAMR_SIG_TERM) | ||||
| 
 | ||||
| #define IS_WAMR_STOP_SIG(signo) \ | ||||
|     ((signo) == WAMR_SIG_STOP || (signo) == WAMR_SIG_TRAP) | ||||
| 
 | ||||
| typedef struct WASMCurrentEnvStatus { | ||||
|     uint64 signal_flag : 32; | ||||
|     uint64 step_count : 16; | ||||
|     uint64 running_status : 16; | ||||
|     korp_mutex wait_lock; | ||||
|     korp_cond wait_cond; | ||||
| } WASMCurrentEnvStatus; | ||||
| 
 | ||||
| WASMCurrentEnvStatus * | ||||
| wasm_cluster_create_exenv_status(); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_destroy_exenv_status(WASMCurrentEnvStatus *status); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_send_signal_all(WASMCluster *cluster, uint32 signo); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_stopped(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_waiting_run(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_wait_thread_status(WASMExecEnv *exec_env, uint32 *status); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_exited(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_continue(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_send_signal(WASMExecEnv *exec_env, uint32 signo); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_thread_step(WASMExecEnv *exec_env); | ||||
| 
 | ||||
| void | ||||
| wasm_cluster_set_debug_inst(WASMCluster *cluster, WASMDebugInstance *inst); | ||||
| 
 | ||||
| #endif /* end of WASM_ENABLE_DEBUG_INTERP != 0 */ | ||||
| 
 | ||||
| #ifdef __cplusplus | ||||
| } | ||||
| #endif | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 Xu Jun
						Xu Jun