Packages

Define pure functional cores in target-agnostic Gleam, which can wrapped to run on both the Erlang and JS targets.

Current section

Files

Jump to
drift src drift_external.erl
Raw

src/drift_external.erl

-module(drift_external).
-on_load init/0.
-export([get_id/0, reset_id/0]).
init() ->
Id = atomics:new(1, [{signed, false}]),
persistent_term:put(?MODULE, Id),
ok.
get_id() ->
Id = persistent_term:get(?MODULE),
atomics:add_get(Id, 1, 1).
reset_id() ->
Id = persistent_term:get(?MODULE),
atomics:put(Id, 1, 0).