Current section
Files
Jump to
Current section
Files
src/glecuid_ffi.erl
-module(glecuid_ffi).
-export([bump_or_initialize_counter/1, hash/1]).
bump_or_initialize_counter(InitialValue) ->
try
CounterRef = persistent_term:get({?MODULE, "Counter"}),
counters:add(CounterRef, 1, 1),
counters:get(CounterRef, 1)
catch
_:_ ->
initialize_counter(InitialValue),
InitialValue
end.
initialize_counter(InitialValue) ->
CounterRef = counters:new(1, [atomics]),
counters:put(CounterRef, 1, InitialValue),
persistent_term:put({?MODULE, "Counter"}, CounterRef).
hash(Data) ->
crypto:hash(sha3_512, Data).