File tree Expand file tree Collapse file tree 1 file changed +16
-3
lines changed
Expand file tree Collapse file tree 1 file changed +16
-3
lines changed Original file line number Diff line number Diff line change @@ -4804,10 +4804,23 @@ static char* _webui_get_full_path(_webui_window_t* win, const char* file) {
48044804
48054805static size_t _webui_new_event_inf (_webui_window_t * win , webui_event_inf_t * * event_inf ) {
48064806 (* event_inf ) = (webui_event_inf_t * )_webui_malloc (sizeof (webui_event_inf_t ));
4807- if (win -> events_count > WEBUI_MAX_ARG )
4808- win -> events_count = 0 ;
4809- size_t event_num = win -> events_count ++ ;
4807+
4808+ size_t event_num = win -> events_count ;
4809+
4810+ // Lock memory and search for next empty event entry
4811+ _webui_mutex_lock (& _webui .mutex_mem );
4812+
4813+ do {
4814+ event_num ++ ;
4815+ if (win -> events_count >= WEBUI_MAX_IDS )
4816+ event_num = 0 ;
4817+ } while (win -> events [event_num ] != NULL );
4818+
4819+ _webui_mutex_unlock (& _webui .mutex_mem );
4820+
4821+ win -> events_count = event_num ;
48104822 win -> events [event_num ] = (* event_inf );
4823+
48114824 return event_num ;
48124825}
48134826
You can’t perform that action at this time.
0 commit comments