summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorBrad Anderson <brad@cloudant.com>2010-06-08 22:25:34 -0400
committerAdam Kocoloski <adam@cloudant.com>2010-08-12 00:59:03 -0400
commit9f19e5450164e492bfe1ab57862725a1966cd231 (patch)
tree6079b62f9c4bff3ffde5d4346c2e8c6d404b2ce2 /src
parentec6a2999c98332ff90e2d0907eefc8bf5671c71d (diff)
missed a lib_misc function that vector clocks used, during dynomite -> membership rename
Diffstat (limited to 'src')
-rw-r--r--src/vector_clock.erl15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/vector_clock.erl b/src/vector_clock.erl
index 740d1520..0a422334 100644
--- a/src/vector_clock.erl
+++ b/src/vector_clock.erl
@@ -9,7 +9,7 @@
%% -include("etest/vector_clock_test.erl").
%% -endif.
-create(NodeName) -> [{NodeName, lib_misc:now_float()}].
+create(NodeName) -> [{NodeName, now_float()}].
truncate(Clock) when length(Clock) > 10 ->
lists:nthtail(length(Clock) - 10, lists:keysort(2, Clock));
@@ -17,13 +17,13 @@ truncate(Clock) when length(Clock) > 10 ->
truncate(Clock) -> Clock.
increment(NodeName, [{NodeName, _Version}|Clocks]) ->
- [{NodeName, lib_misc:now_float()}|Clocks];
+ [{NodeName, now_float()}|Clocks];
increment(NodeName, [NodeClock|Clocks]) ->
[NodeClock|increment(NodeName, Clocks)];
increment(NodeName, []) ->
- [{NodeName, lib_misc:now_float()}].
+ [{NodeName, now_float()}].
resolve({ClockA, ValuesA}, {ClockB, ValuesB}) ->
case compare(ClockA, ClockB) of
@@ -98,3 +98,12 @@ equals(ClockA, ClockB) ->
end, ClockB)
end, ClockA),
Equivalent and (length(ClockA) == length(ClockB)).
+
+now_float() ->
+ time_to_epoch_float(now()).
+
+time_to_epoch_float(Time) when is_integer(Time) or is_float(Time) ->
+ Time;
+
+time_to_epoch_float({Mega,Sec,Micro}) ->
+ Mega * 1000000 + Sec + Micro / 1000000.