mirror of
https://github.com/espressif/esp-idf
synced 2025-03-09 09:09:10 -04:00
fix(esp_event): Fix minor no-ISR post regression
from 15f6775f5d5bd9ee73072e914118024d15b685eb
This commit is contained in:
parent
82f558b47a
commit
881628c548
@ -135,7 +135,7 @@ static void handler_execute(esp_event_loop_instance_t* loop, esp_event_handler_n
|
||||
|
||||
(*(handler->handler_ctx->handler))(handler->handler_ctx->arg, post.base, post.id, data_ptr);
|
||||
#else
|
||||
(*(handler->handler_ctx->handler))(handler->handler_ctx->arg, post.base, post.id, post.data);
|
||||
(*(handler->handler_ctx->handler))(handler->handler_ctx->arg, post.base, post.id, post.data.ptr);
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_ESP_EVENT_LOOP_PROFILING
|
||||
@ -429,14 +429,11 @@ static void loop_node_remove_all_handler(esp_event_loop_node_t* loop_node)
|
||||
static void inline __attribute__((always_inline)) post_instance_delete(esp_event_post_instance_t* post)
|
||||
{
|
||||
#if CONFIG_ESP_EVENT_POST_FROM_ISR
|
||||
if (post->data_allocated && post->data.ptr) {
|
||||
if (post->data_allocated)
|
||||
#endif
|
||||
{
|
||||
free(post->data.ptr);
|
||||
}
|
||||
#else
|
||||
if (post->data) {
|
||||
free(post->data);
|
||||
}
|
||||
#endif
|
||||
memset(post, 0, sizeof(*post));
|
||||
}
|
||||
|
||||
@ -935,12 +932,10 @@ esp_err_t esp_event_post_to(esp_event_loop_handle_t event_loop, esp_event_base_t
|
||||
}
|
||||
|
||||
memcpy(event_data_copy, event_data, event_data_size);
|
||||
#if CONFIG_ESP_EVENT_POST_FROM_ISR
|
||||
post.data.ptr = event_data_copy;
|
||||
#if CONFIG_ESP_EVENT_POST_FROM_ISR
|
||||
post.data_allocated = true;
|
||||
post.data_set = true;
|
||||
#else
|
||||
post.data = event_data_copy;
|
||||
#endif
|
||||
}
|
||||
post.base = event_base;
|
||||
|
@ -91,14 +91,10 @@ typedef struct esp_event_remove_handler_context_t {
|
||||
bool legacy; /**< Set to true when the handler unregistration request was made from legacy code */
|
||||
} esp_event_remove_handler_context_t;
|
||||
|
||||
#if CONFIG_ESP_EVENT_POST_FROM_ISR
|
||||
typedef union esp_event_post_data {
|
||||
uint32_t val;
|
||||
void *ptr;
|
||||
} esp_event_post_data_t;
|
||||
#else
|
||||
typedef void* esp_event_post_data_t;
|
||||
#endif
|
||||
|
||||
/// Event posted to the event queue
|
||||
typedef struct esp_event_post_instance {
|
||||
|
3
components/esp_event/test_apps/sdkconfig.ci.no_isr_post
Normal file
3
components/esp_event/test_apps/sdkconfig.ci.no_isr_post
Normal file
@ -0,0 +1,3 @@
|
||||
# This configuration checks the event loop if posting from ISR is disabled
|
||||
CONFIG_ESP_TASK_WDT_INIT=n
|
||||
CONFIG_POST_EVENTS_FROM_ISR=n
|
Loading…
x
Reference in New Issue
Block a user