Skip to content

Commit 3114ae3

Browse files
author
David Čermák
committed
Merge branch 'fix/event_no_isr_post' into 'master'
fix(esp_event): Fix minor no-ISR post regression from 15f6775 See merge request espressif/esp-idf!36697
2 parents b0aac12 + 881628c commit 3114ae3

File tree

3 files changed

+8
-14
lines changed

3 files changed

+8
-14
lines changed

components/esp_event/esp_event.c

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ static void handler_execute(esp_event_loop_instance_t* loop, esp_event_handler_n
135135

136136
(*(handler->handler_ctx->handler))(handler->handler_ctx->arg, post.base, post.id, data_ptr);
137137
#else
138-
(*(handler->handler_ctx->handler))(handler->handler_ctx->arg, post.base, post.id, post.data);
138+
(*(handler->handler_ctx->handler))(handler->handler_ctx->arg, post.base, post.id, post.data.ptr);
139139
#endif
140140

141141
#ifdef CONFIG_ESP_EVENT_LOOP_PROFILING
@@ -429,14 +429,11 @@ static void loop_node_remove_all_handler(esp_event_loop_node_t* loop_node)
429429
static void inline __attribute__((always_inline)) post_instance_delete(esp_event_post_instance_t* post)
430430
{
431431
#if CONFIG_ESP_EVENT_POST_FROM_ISR
432-
if (post->data_allocated && post->data.ptr) {
432+
if (post->data_allocated)
433+
#endif
434+
{
433435
free(post->data.ptr);
434436
}
435-
#else
436-
if (post->data) {
437-
free(post->data);
438-
}
439-
#endif
440437
memset(post, 0, sizeof(*post));
441438
}
442439

@@ -935,12 +932,10 @@ esp_err_t esp_event_post_to(esp_event_loop_handle_t event_loop, esp_event_base_t
935932
}
936933

937934
memcpy(event_data_copy, event_data, event_data_size);
938-
#if CONFIG_ESP_EVENT_POST_FROM_ISR
939935
post.data.ptr = event_data_copy;
936+
#if CONFIG_ESP_EVENT_POST_FROM_ISR
940937
post.data_allocated = true;
941938
post.data_set = true;
942-
#else
943-
post.data = event_data_copy;
944939
#endif
945940
}
946941
post.base = event_base;

components/esp_event/private_include/esp_event_internal.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,10 @@ typedef struct esp_event_remove_handler_context_t {
9191
bool legacy; /**< Set to true when the handler unregistration request was made from legacy code */
9292
} esp_event_remove_handler_context_t;
9393

94-
#if CONFIG_ESP_EVENT_POST_FROM_ISR
9594
typedef union esp_event_post_data {
9695
uint32_t val;
9796
void *ptr;
9897
} esp_event_post_data_t;
99-
#else
100-
typedef void* esp_event_post_data_t;
101-
#endif
10298

10399
/// Event posted to the event queue
104100
typedef struct esp_event_post_instance {
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# This configuration checks the event loop if posting from ISR is disabled
2+
CONFIG_ESP_TASK_WDT_INIT=n
3+
CONFIG_POST_EVENTS_FROM_ISR=n

0 commit comments

Comments
 (0)