Browse Source

monotonic time is completely broken in Erlang on Windows

5HT 5 years ago
parent
commit
1df2a09fd0
2 changed files with 7 additions and 2 deletions
  1. 1 1
      mix.exs
  2. 6 1
      src/stores/kvs_rocks.erl

+ 1 - 1
mix.exs

@@ -2,7 +2,7 @@ defmodule KVS.Mixfile do
   use Mix.Project
 
   def project do
-    [app: :kvs, version: "6.9.1", description: "KVS Abstract Chain Database", package: package(), deps: deps()]
+    [app: :kvs, version: "6.9.2", description: "KVS Abstract Chain Database", package: package(), deps: deps()]
   end
 
   def application do

+ 6 - 1
src/stores/kvs_rocks.erl

@@ -58,7 +58,12 @@ next(I,Key,S,A,X,T,N,C) when size(A) > S ->
                   _ -> T end;
 next(_,_,_,_,_,T,_,_) -> T.
 
-seq(_,_) -> erlang:integer_to_list(element(2,hd(lists:reverse(erlang:system_info(os_monotonic_time_source))))).
+seq(_,_) ->
+  case os:type() of
+       {win32,nt} -> {Mega,Sec,Micro} = erlang:now(), integer_to_list((Mega*1000000+Sec)*1000000+Micro);
+                _ -> erlang:integer_to_list(element(2,hd(lists:reverse(erlang:system_info(os_monotonic_time_source)))))
+  end.
+
 create_table(_,_) -> [].
 add_table_index(_, _) -> ok.
 dump() -> ok.