Skip to content

Commit

Permalink
recreate v4.4.1 avoid bug
Browse files Browse the repository at this point in the history
  • Loading branch information
ebisuke committed Jan 8, 2023
1 parent 1329b19 commit 000963d
Show file tree
Hide file tree
Showing 2 changed files with 54 additions and 24 deletions.
53 changes: 40 additions & 13 deletions components/esp_event/default_event_loop.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,14 +23,14 @@ static esp_event_loop_handle_t s_default_loop = NULL;
/* ---------------------------- Public API ---------------------------------- */

esp_err_t esp_event_handler_register(esp_event_base_t event_base, int32_t event_id,
esp_event_handler_t event_handler, void* event_handler_arg)
esp_event_handler_t event_handler, void* event_handler_arg)
{
if (s_default_loop == NULL) {
return ESP_ERR_INVALID_STATE;
}

return esp_event_handler_register_with(s_default_loop, event_base, event_id,
event_handler, event_handler_arg);
event_handler, event_handler_arg);
}

esp_err_t esp_event_handler_instance_register(esp_event_base_t event_base,
Expand All @@ -52,14 +52,14 @@ esp_err_t esp_event_handler_instance_register(esp_event_base_t event_base,
}

esp_err_t esp_event_handler_unregister(esp_event_base_t event_base, int32_t event_id,
esp_event_handler_t event_handler)
esp_event_handler_t event_handler)
{
if (s_default_loop == NULL) {
return ESP_ERR_INVALID_STATE;
}

return esp_event_handler_unregister_with(s_default_loop, event_base, event_id,
event_handler);
event_handler);
}

esp_err_t esp_event_handler_instance_unregister(esp_event_base_t event_base,
Expand All @@ -74,14 +74,14 @@ esp_err_t esp_event_handler_instance_unregister(esp_event_base_t event_base,
}

esp_err_t esp_event_post(esp_event_base_t event_base, int32_t event_id,
void* event_data, size_t event_data_size, TickType_t ticks_to_wait)
void* event_data, size_t event_data_size, TickType_t ticks_to_wait)
{
if (s_default_loop == NULL) {
return ESP_ERR_INVALID_STATE;
}

return esp_event_post_to(s_default_loop, event_base, event_id,
event_data, event_data_size, ticks_to_wait);
event_data, event_data_size, ticks_to_wait);
}


Expand All @@ -99,18 +99,18 @@ esp_err_t esp_event_isr_post(esp_event_base_t event_base, int32_t event_id,
#endif


esp_err_t esp_event_loop_create_default(void)
esp_err_t esp_event_loop_create_default()
{
if (s_default_loop) {
return ESP_ERR_INVALID_STATE;
}

esp_event_loop_args_t loop_args = {
.queue_size = CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE,
.task_name = "sys_evt",
.task_stack_size = ESP_TASKD_EVENT_STACK,
.task_priority = ESP_TASKD_EVENT_PRIO,
.task_core_id = 0
.queue_size = CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE,
.task_name = "sys_evt",
.task_stack_size = ESP_TASKD_EVENT_STACK,
.task_priority = ESP_TASKD_EVENT_PRIO,
.task_core_id = 0
};

esp_err_t err;
Expand All @@ -122,7 +122,29 @@ esp_err_t esp_event_loop_create_default(void)

return ESP_OK;
}
esp_err_t esp_event_loop_create_default_noauto()
{
if (s_default_loop) {
return ESP_ERR_INVALID_STATE;
}

esp_event_loop_args_t loop_args = {
.queue_size = CONFIG_ESP_SYSTEM_EVENT_QUEUE_SIZE,
.task_name = NULL,
.task_stack_size = ESP_TASKD_EVENT_STACK,
.task_priority = ESP_TASKD_EVENT_PRIO,
.task_core_id = 0
};

esp_err_t err;

err = esp_event_loop_create(&loop_args, &s_default_loop);
if (err != ESP_OK) {
return err;
}

return ESP_OK;
}
esp_err_t esp_event_loop_delete_default(void)
{
if (!s_default_loop) {
Expand All @@ -141,7 +163,12 @@ esp_err_t esp_event_loop_delete_default(void)

return ESP_OK;
}

esp_event_loop_handle_t esp_event_get_default_loop_handle(void){
return s_default_loop;
}
void esp_event_set_default_loop_handle(esp_event_loop_handle_t handler){
s_default_loop = handler;
}
#if !CONFIG_IDF_TARGET_LINUX
/* Include the code to forward legacy system_event_t events to the this default
* event loop.
Expand Down
25 changes: 14 additions & 11 deletions components/esp_event/include/esp_event.h
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ esp_err_t esp_event_loop_delete(esp_event_loop_handle_t event_loop);
* - ESP_FAIL: Failed to create task loop
* - Others: Fail
*/
esp_err_t esp_event_loop_create_default(void);

esp_err_t esp_event_loop_create_default(bool auto_event_dispatch);
esp_err_t esp_event_loop_create_default_noauto(void);
/**
* @brief Delete the default event loop
*
Expand Down Expand Up @@ -223,11 +223,11 @@ esp_err_t esp_event_handler_register_with(esp_event_loop_handle_t event_loop,
* - Others: Fail
*/
esp_err_t esp_event_handler_instance_register_with(esp_event_loop_handle_t event_loop,
esp_event_base_t event_base,
int32_t event_id,
esp_event_handler_t event_handler,
void *event_handler_arg,
esp_event_handler_instance_t *instance);
esp_event_base_t event_base,
int32_t event_id,
esp_event_handler_t event_handler,
void *event_handler_arg,
esp_event_handler_instance_t *instance);

/**
* @brief Register an instance of event handler to the default loop.
Expand Down Expand Up @@ -256,10 +256,10 @@ esp_err_t esp_event_handler_instance_register_with(esp_event_loop_handle_t event
* - Others: Fail
*/
esp_err_t esp_event_handler_instance_register(esp_event_base_t event_base,
int32_t event_id,
esp_event_handler_t event_handler,
void *event_handler_arg,
esp_event_handler_instance_t *instance);
int32_t event_id,
esp_event_handler_t event_handler,
void *event_handler_arg,
esp_event_handler_instance_t *instance);

/**
* @brief Unregister a handler with the system event loop (legacy).
Expand Down Expand Up @@ -520,6 +520,9 @@ esp_err_t esp_event_isr_post_to(esp_event_loop_handle_t event_loop,
*/
esp_err_t esp_event_dump(FILE *file);

esp_event_loop_handle_t esp_event_get_default_loop_handle(void);
void esp_event_set_default_loop_handle(esp_event_loop_handle_t handler);

#ifdef __cplusplus
} // extern "C"
#endif
Expand Down

0 comments on commit 000963d

Please sign in to comment.