From eb914f45d1cfab6bc5fcc48d400c7d289b9ce1c1 Mon Sep 17 00:00:00 2001 From: Juha Ylinen Date: Wed, 4 Jan 2023 14:58:17 +0200 Subject: [PATCH] net: lwm2m: Check return value from lwm2m_rd_client_pause/resume Check return values from lwm2m_rd_client_pause() and lwm2m_rd_client_resume() when engine thread suspend is requested. Signed-off-by: Juha Ylinen --- subsys/net/lib/lwm2m/lwm2m_engine.c | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/subsys/net/lib/lwm2m/lwm2m_engine.c b/subsys/net/lib/lwm2m/lwm2m_engine.c index ae4df0202dc..c119b09cdd5 100644 --- a/subsys/net/lib/lwm2m/lwm2m_engine.c +++ b/subsys/net/lib/lwm2m/lwm2m_engine.c @@ -683,16 +683,30 @@ static void socket_loop(void) int i, rc; int64_t timestamp; int32_t timeout, next_retransmit; + bool rd_client_paused; while (1) { + rd_client_paused = false; /* Check is Thread Suspend Requested */ if (suspend_engine_thread) { - lwm2m_rd_client_pause(); + rc = lwm2m_rd_client_pause(); + if (rc == 0) { + rd_client_paused = true; + } else { + LOG_ERR("Could not pause RD client"); + } + suspend_engine_thread = false; active_engine_thread = false; k_thread_suspend(engine_thread_id); active_engine_thread = true; - lwm2m_rd_client_resume(); + + if (rd_client_paused) { + rc = lwm2m_rd_client_resume(); + if (rc < 0) { + LOG_ERR("Could not resume RD client"); + } + } } timestamp = k_uptime_get();