diff options
author | Sami Kerola | 2011-07-25 22:08:40 +0200 |
---|---|---|
committer | Sami Kerola | 2011-07-26 18:15:14 +0200 |
commit | ea0804b0c7deaf462ba5ce35289b773c054433a2 (patch) | |
tree | 44a3087d917aea866d50ce3a3ddda27c44084a02 /hwclock/hwclock.c | |
parent | hwclock: fix compiler warnings (diff) | |
download | kernel-qcow2-util-linux-ea0804b0c7deaf462ba5ce35289b773c054433a2.tar.gz kernel-qcow2-util-linux-ea0804b0c7deaf462ba5ce35289b773c054433a2.tar.xz kernel-qcow2-util-linux-ea0804b0c7deaf462ba5ce35289b773c054433a2.zip |
hwclock: remove goto statement
Signed-off-by: Sami Kerola <kerolasa@iki.fi>
Diffstat (limited to 'hwclock/hwclock.c')
-rw-r--r-- | hwclock/hwclock.c | 34 |
1 files changed, 21 insertions, 13 deletions
diff --git a/hwclock/hwclock.c b/hwclock/hwclock.c index 30ee856bd..f070b19aa 100644 --- a/hwclock/hwclock.c +++ b/hwclock/hwclock.c @@ -516,15 +516,7 @@ set_hardware_clock_exact(const time_t sethwtime, time_t newhwtime; struct timeval beginsystime, nowsystime; double tdiff; - - time_resync: - gettimeofday(&beginsystime, NULL); - tdiff = time_diff(beginsystime, refsystime); - newhwtime = sethwtime + (int)(tdiff + 0.5); - if (debug) - printf(_ - ("Time elapsed since reference time has been %.6f seconds.\n" - "Delaying further to reach the new time.\n"), tdiff); + int time_resync = 1; /* * Now delay some more until Hardware Clock time newhwtime arrives. @@ -533,12 +525,28 @@ set_hardware_clock_exact(const time_t sethwtime, * second precisely 500 ms after you finish the setting). */ do { + if (time_resync) { + gettimeofday(&beginsystime, NULL); + tdiff = time_diff(beginsystime, refsystime); + newhwtime = sethwtime + (int)(tdiff + 0.5); + if (debug) + printf(_ + ("Time elapsed since reference time has been %.6f seconds.\n" + "Delaying further to reach the new time.\n"), + tdiff); + time_resync = 0; + } + gettimeofday(&nowsystime, NULL); tdiff = time_diff(nowsystime, beginsystime); - if (tdiff < 0) - goto time_resync; /* probably backward time reset */ - if (tdiff > 0.1) - goto time_resync; /* probably forward time reset */ + if (tdiff < 0) { + time_resync = 1; /* probably backward time reset */ + continue; + } + if (tdiff > 0.1) { + time_resync = 1; /* probably forward time reset */ + continue; + } beginsystime = nowsystime; tdiff = time_diff(nowsystime, refsystime); } while (newhwtime == sethwtime + (int)(tdiff + 0.5)); |