Fix ticker_read_us() race condition.

pull/9186/head
Thomas Kemmer 2018-12-21 20:41:47 +01:00
parent ac361d6a4b
commit b0a18b32a0
1 changed files with 4 additions and 1 deletions

View File

@ -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 ticker_read_us(const ticker_data_t *const ticker)
{ {
us_timestamp_t ret;
initialize(ticker); initialize(ticker);
core_util_critical_section_enter(); core_util_critical_section_enter();
update_present_time(ticker); update_present_time(ticker);
ret = ticker->queue->present_time;
core_util_critical_section_exit(); 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) int ticker_get_next_timestamp(const ticker_data_t *const data, timestamp_t *timestamp)