summaryrefslogtreecommitdiff
path: root/src/gm.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/gm.erl')
-rw-r--r--src/gm.erl42
1 files changed, 12 insertions, 30 deletions
diff --git a/src/gm.erl b/src/gm.erl
index 1e4168c0e6..176e14537f 100644
--- a/src/gm.erl
+++ b/src/gm.erl
@@ -391,10 +391,6 @@
%% For INSTR_MOD callbacks
-export([call/3, cast/2, monitor/1, demonitor/1]).
--ifndef(use_specs).
--export([behaviour_info/1]).
--endif.
-
-export([table_definitions/0]).
-define(GROUP_TABLE, gm_group).
@@ -436,22 +432,20 @@
-define(TAG, '$gm').
--ifdef(use_specs).
-
-export_type([group_name/0]).
--type(group_name() :: any()).
--type(txn_fun() :: fun((fun(() -> any())) -> any())).
+-type group_name() :: any().
+-type txn_fun() :: fun((fun(() -> any())) -> any()).
--spec(create_tables/0 :: () -> 'ok' | {'aborted', any()}).
--spec(start_link/4 :: (group_name(), atom(), any(), txn_fun()) ->
- rabbit_types:ok_pid_or_error()).
--spec(leave/1 :: (pid()) -> 'ok').
--spec(broadcast/2 :: (pid(), any()) -> 'ok').
--spec(confirmed_broadcast/2 :: (pid(), any()) -> 'ok').
--spec(info/1 :: (pid()) -> rabbit_types:infos()).
--spec(validate_members/2 :: (pid(), [pid()]) -> 'ok').
--spec(forget_group/1 :: (group_name()) -> 'ok').
+-spec create_tables() -> 'ok' | {'aborted', any()}.
+-spec start_link(group_name(), atom(), any(), txn_fun()) ->
+ rabbit_types:ok_pid_or_error().
+-spec leave(pid()) -> 'ok'.
+-spec broadcast(pid(), any()) -> 'ok'.
+-spec confirmed_broadcast(pid(), any()) -> 'ok'.
+-spec info(pid()) -> rabbit_types:infos().
+-spec validate_members(pid(), [pid()]) -> 'ok'.
+-spec forget_group(group_name()) -> 'ok'.
%% The joined, members_changed and handle_msg callbacks can all return
%% any of the following terms:
@@ -497,15 +491,6 @@
-callback handle_terminate(Args :: term(), Reason :: term()) ->
ok | term().
--else.
-
-behaviour_info(callbacks) ->
- [{joined, 2}, {members_changed, 3}, {handle_msg, 3}, {handle_terminate, 2}];
-behaviour_info(_Other) ->
- undefined.
-
--endif.
-
create_tables() ->
create_tables([?TABLE]).
@@ -551,9 +536,6 @@ forget_group(GroupName) ->
init([GroupName, Module, Args, TxnFun]) ->
put(process_name, {?MODULE, GroupName}),
- _ = random:seed(erlang:phash2([node()]),
- time_compat:monotonic_time(),
- time_compat:unique_integer()),
Self = make_member(GroupName),
gen_server2:cast(self(), join),
{ok, #state { self = Self,
@@ -1084,7 +1066,7 @@ join_group(Self, GroupName, #gm_group { members = Members } = Group, TxnFun) ->
prune_or_create_group(Self, GroupName, TxnFun),
TxnFun);
Alive ->
- Left = lists:nth(random:uniform(length(Alive)), Alive),
+ Left = lists:nth(rand_compat:uniform(length(Alive)), Alive),
Handler =
fun () ->
join_group(