From b0a18b32a0dd5c79e35c437525ab07d712a84bff Mon Sep 17 00:00:00 2001 From: Thomas Kemmer Date: Fri, 21 Dec 2018 20:41:47 +0100 Subject: [PATCH] Fix ticker_read_us() race condition. --- hal/mbed_ticker_api.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/hal/mbed_ticker_api.c b/hal/mbed_ticker_api.c index 36ea2938fd..0f852ef06c 100644 --- a/hal/mbed_ticker_api.c +++ b/hal/mbed_ticker_api.c @@ -416,13 +416,16 @@ timestamp_t ticker_read(const ticker_data_t *const ticker) us_timestamp_t ticker_read_us(const ticker_data_t *const ticker) { + us_timestamp_t ret; + initialize(ticker); core_util_critical_section_enter(); update_present_time(ticker); + ret = ticker->queue->present_time; core_util_critical_section_exit(); - return ticker->queue->present_time; + return ret; } int ticker_get_next_timestamp(const ticker_data_t *const data, timestamp_t *timestamp)