mirror of https://github.com/ARMmbed/mbed-os.git
Fix ticker_read_us() race condition.
parent
ac361d6a4b
commit
b0a18b32a0
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue