mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-30 16:14:13 +00:00
timeout: no volatile stackvars, better warnings
This commit is contained in:
parent
dff3bac441
commit
89d28c8222
@ -53,7 +53,7 @@ uint64_t Timer::Connection::_ts_to_us_ratio(Timestamp ts,
|
|||||||
*/
|
*/
|
||||||
static unsigned nr_of_warnings { 0 };
|
static unsigned nr_of_warnings { 0 };
|
||||||
if (nr_of_warnings++ % 1000 == 0) {
|
if (nr_of_warnings++ % 1000 == 0) {
|
||||||
warning("timestamp value too big");
|
warning("timestamp value too big, ts=", ts, " max_ts=", max_ts);
|
||||||
}
|
}
|
||||||
while (ts > max_ts) {
|
while (ts > max_ts) {
|
||||||
ts >>= 1;
|
ts >>= 1;
|
||||||
|
@ -41,8 +41,8 @@ void Timer::Connection::_update_real_time()
|
|||||||
remote_time_trials < MAX_REMOTE_TIME_TRIALS; ) {
|
remote_time_trials < MAX_REMOTE_TIME_TRIALS; ) {
|
||||||
|
|
||||||
/* read out the two time values close in succession */
|
/* read out the two time values close in succession */
|
||||||
Timestamp volatile new_ts = _timestamp();
|
Timestamp const new_ts = _timestamp();
|
||||||
uint64_t volatile new_us = elapsed_us();
|
uint64_t const new_us = elapsed_us();
|
||||||
|
|
||||||
/* do not proceed until the time difference is at least 1 us */
|
/* do not proceed until the time difference is at least 1 us */
|
||||||
if (new_us == _us || new_ts == _ts) { continue; }
|
if (new_us == _us || new_ts == _ts) { continue; }
|
||||||
@ -99,7 +99,10 @@ void Timer::Connection::_update_real_time()
|
|||||||
|
|
||||||
/* if possible, lower the shift to meet the limitation */
|
/* if possible, lower the shift to meet the limitation */
|
||||||
if (!factor_shift) {
|
if (!factor_shift) {
|
||||||
error("timestamp difference too big");
|
|
||||||
|
error("timestamp difference too big, ts_diff=", ts_diff,
|
||||||
|
" max_ts_diff=", max_ts_diff);
|
||||||
|
|
||||||
throw Factor_update_failed();
|
throw Factor_update_failed();
|
||||||
}
|
}
|
||||||
factor_shift--;
|
factor_shift--;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user