From 8446b049ee560a24e3aa847e40b55171cc8ba17f Mon Sep 17 00:00:00 2001 From: Urban Wallasch Date: Fri, 26 Jul 2019 00:14:56 +0200 Subject: [PATCH] * Correctly track and display simulation paused status in telelogger. --- telelogger.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/telelogger.c b/telelogger.c index 9544418..dbe489f 100644 --- a/telelogger.c +++ b/telelogger.c @@ -1,3 +1,5 @@ +#define _XOPEN_SOURCE 500 // for usleep() + #include #include #include @@ -19,6 +21,7 @@ static const char *s2hms( int s ) { } static int log_console(void) { + bool last_paused = telemetry->paused; uint64_t last_timestamp = telemetry->timestamp; printf( "game id: %s version %u.%u (%s)\n" , telemetry->game_id, @@ -61,9 +64,18 @@ static int log_console(void) { printf( "nav limit: %.1f km/h\n", telemetry->nav_slimit * 3.6 ); puts(""); - sleep( 1 ); - while ( telemetry->paused || last_timestamp == telemetry->timestamp ) + + if ( last_paused ) { + while ( telemetry->paused ) + usleep( 100000 ); + } + else if ( last_timestamp == telemetry->timestamp ) { + while ( last_timestamp == telemetry->timestamp ) + sleep( 1 ); + } + else sleep( 1 ); + last_paused = telemetry->paused; last_timestamp = telemetry->timestamp; } return 0; -- 2.30.2