@@ -453,6 +453,7 @@ typedef struct _webui_core_t {
453453 webui_mutex_t mutex_async_response ;
454454 webui_mutex_t mutex_mem ;
455455 webui_mutex_t mutex_token ;
456+ webui_mutex_t mutex_js_run_id ;
456457 webui_condition_t condition_wait ;
457458 char * default_server_root_path ;
458459 bool ui ;
@@ -4837,9 +4838,12 @@ static uint16_t _webui_get_run_id(void) {
48374838 _webui_log_debug ("[Core]\t\t_webui_get_run_id()\n" );
48384839 #endif
48394840
4841+ _webui_mutex_lock (& _webui .mutex_js_run_id );
48404842 if (_webui .run_last_id >= WEBUI_MAX_IDS )
48414843 _webui .run_last_id = 0 ;
4842- return _webui .run_last_id ++ ;
4844+ uint16_t id = _webui .run_last_id ++ ;
4845+ _webui_mutex_unlock (& _webui .mutex_js_run_id );
4846+ return id ;
48434847}
48444848
48454849static bool _webui_socket_test_listen_mg (size_t port_num ) {
@@ -7027,6 +7031,7 @@ static void _webui_clean(void) {
70277031 _webui_mutex_destroy (& _webui .mutex_async_response );
70287032 _webui_mutex_destroy (& _webui .mutex_mem );
70297033 _webui_mutex_destroy (& _webui .mutex_token );
7034+ _webui_mutex_destroy (& _webui .mutex_js_run_id );
70307035 _webui_condition_destroy (& _webui .condition_wait );
70317036
70327037 #ifdef WEBUI_LOG
@@ -8790,6 +8795,7 @@ static void _webui_init(void) {
87908795 _webui_mutex_init (& _webui .mutex_async_response );
87918796 _webui_mutex_init (& _webui .mutex_mem );
87928797 _webui_mutex_init (& _webui .mutex_token );
8798+ _webui_mutex_init (& _webui .mutex_js_run_id );
87938799 _webui_condition_init (& _webui .condition_wait );
87948800
87958801 // Random
0 commit comments