diff --git a/framework/src/fwk_multi_thread.c b/framework/src/fwk_multi_thread.c index 65cf84345dccdca0c73c87ef4e5628970ea47a31..2dcba59ab932f9469cf2654833842a9c4f6f3ba1 100644 --- a/framework/src/fwk_multi_thread.c +++ b/framework/src/fwk_multi_thread.c @@ -358,7 +358,7 @@ static void process_event_requiring_response(struct fwk_event *event) resp_event.is_delayed_response = false; status = process_event(event, &resp_event); - if (status != FWK_SUCCESS) + if (!fwk_expect(status == FWK_SUCCESS)) FWK_HOST_PRINT(err_msg_line, status, __LINE__); resp_event.is_response = true; @@ -411,7 +411,7 @@ static void process_next_thread_event(struct __fwk_thread_ctx *thread_ctx) status = module->process_notification(event, &async_resp_event); else status = module->process_event(event, &async_resp_event); - if (status != FWK_SUCCESS) + if (!fwk_expect(status == FWK_SUCCESS)) FWK_HOST_PRINT(err_msg_line, status, __LINE__); } @@ -770,6 +770,7 @@ int fwk_thread_create(fwk_id_t id) error: FWK_HOST_PRINT(err_msg_func, status, __func__); + fwk_expect(false); return status; } @@ -823,17 +824,22 @@ int fwk_thread_put_event(struct fwk_event *event) } } - /* Call from a thread */ if (fwk_interrupt_get_current(&interrupt) != FWK_SUCCESS) { + /* Call from a thread */ event->is_delayed_response = event->is_response; - return put_event(thread_ctx, event); - } + status = put_event(thread_ctx, event); + } else + /* Call from an ISR */ + status = put_isr_event(event); - /* Call from an ISR */ - return put_isr_event(event); + if (status != FWK_SUCCESS) + goto error; + + return FWK_SUCCESS; error: FWK_HOST_PRINT(err_msg_func, status, __func__); + fwk_expect(false); return status; } @@ -880,7 +886,7 @@ int fwk_thread_put_event_and_wait(struct fwk_event *event, event->is_notification = false; status = put_event(target_thread_ctx, event); if (status != FWK_SUCCESS) - return status; + goto error; resp_event->cookie = event->cookie; ctx.current_thread_ctx->response_event = resp_event; @@ -915,6 +921,7 @@ int fwk_thread_put_event_and_wait(struct fwk_event *event, error: FWK_HOST_PRINT(err_msg_func, status, __func__); + fwk_expect(false); return status; } @@ -951,5 +958,6 @@ int fwk_thread_get_delayed_response(fwk_id_t id, uint32_t cookie, error: FWK_HOST_PRINT(err_msg_func, status, __func__); + fwk_expect(false); return status; } diff --git a/framework/src/fwk_thread.c b/framework/src/fwk_thread.c index d8a89a7bb7a32a9b51df24ba0d3f450e595d38b5..fbdf99e4e13c3f72647e789b69270b2baa985b64 100644 --- a/framework/src/fwk_thread.c +++ b/framework/src/fwk_thread.c @@ -237,5 +237,6 @@ int fwk_thread_put_event(struct fwk_event *event) error: FWK_HOST_PRINT(err_msg_func, status, __func__); + fwk_expect(false); return status; }