|
|
@ -8,7 +8,7 @@ start(Num, Pid) -> |
|
|
|
Time1 = erlang:monotonic_time(), |
|
|
|
NewDsI = insert(Num, Ds), |
|
|
|
Time2 = erlang:monotonic_time(), |
|
|
|
NewDsR = read(Num, NewDsI), |
|
|
|
NewDsR = read(Num, NewDsI, 0), |
|
|
|
Time3 = erlang:monotonic_time(), |
|
|
|
NewDsU = update(Num, NewDsR), |
|
|
|
Time4 = erlang:monotonic_time(), |
|
|
@ -28,16 +28,17 @@ insert(Num, Ds) -> |
|
|
|
NewDs = maps:put(Num, Num, Ds), |
|
|
|
insert(Num - 1, NewDs). |
|
|
|
|
|
|
|
read(0, Ds) -> |
|
|
|
read(0, Ds, _V) -> |
|
|
|
Ds; |
|
|
|
read(Num, Ds) -> |
|
|
|
case Ds of |
|
|
|
read(Num, Ds, _V) -> |
|
|
|
V = |
|
|
|
case Ds of |
|
|
|
#{Num := Value} -> |
|
|
|
Value; |
|
|
|
_ -> |
|
|
|
undefined |
|
|
|
end, |
|
|
|
read(Num - 1, Ds). |
|
|
|
read(Num - 1, Ds, V). |
|
|
|
|
|
|
|
update(0, Ds) -> |
|
|
|
Ds; |
|
|
|