You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by mp...@apache.org on 2016/08/14 04:20:37 UTC
[2/3] kudu git commit: monotime: use a signed integer for the value
monotime: use a signed integer for the value
MonoTime previously used a uint64_t to store its value. This caused
problems in code patterns like:
MonoTime gc_point = now;
now.AddDelta(MonoTime::FromSeconds(-3600));
if (gc_point.ComesBefore(some_other_time)) {
...
}
In particular, the subtraction from 'gc_point' caused the unsigned
integer to wrap around such that _no_ time came before it.
One solution would have been to avoid the above pattern and only allow
adding positive deltas to a MonoTime. But, an easier one is to just use
a signed integer for the internal representation.
Change-Id: I68ce7b73a9a67becf91863161f0ae769153fe438
Reviewed-on: http://gerrit.cloudera.org:8080/3963
Tested-by: Kudu Jenkins
Reviewed-by: Mike Percy <mp...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/b489f6ed
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/b489f6ed
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/b489f6ed
Branch: refs/heads/master
Commit: b489f6edc63a6a7126af6ff44b31edb03435a2d3
Parents: 587f33d
Author: Todd Lipcon <to...@apache.org>
Authored: Fri Aug 12 19:45:16 2016 -0700
Committer: Todd Lipcon <to...@apache.org>
Committed: Sat Aug 13 03:34:36 2016 +0000
----------------------------------------------------------------------
src/kudu/util/monotime.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kudu/blob/b489f6ed/src/kudu/util/monotime.h
----------------------------------------------------------------------
diff --git a/src/kudu/util/monotime.h b/src/kudu/util/monotime.h
index de1c1e9..4e27d18 100644
--- a/src/kudu/util/monotime.h
+++ b/src/kudu/util/monotime.h
@@ -236,7 +236,7 @@ class KUDU_EXPORT MonoTime {
explicit MonoTime(const struct timespec &ts);
explicit MonoTime(int64_t nanos);
double ToSeconds() const;
- uint64_t nanos_;
+ int64_t nanos_;
};
/// Sleep for an interval specified by a MonoDelta instance.