diff options
| author | Jean-Sébastien Pédron <jean-sebastien.pedron@dumbbell.fr> | 2019-02-01 17:50:49 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-01 17:50:49 +0100 |
| commit | ed3dd4d6257df0925ce78ad94de099304346da4c (patch) | |
| tree | 5467b45fdb1ce8b7e362519c10f724b7637e9ffd /src/gm.erl | |
| parent | a8bc2fc210130a8d989b7d7d877892466f2b802b (diff) | |
| parent | 3562975dc1b59bf4d9ddde909a36c3c98127c575 (diff) | |
| download | rabbitmq-server-git-ed3dd4d6257df0925ce78ad94de099304346da4c.tar.gz | |
Merge pull request #1818 from rabbitmq/backward-compatible-amqqueue
Feature flags support + make #amqqueue{} private
Diffstat (limited to 'src/gm.erl')
| -rw-r--r-- | src/gm.erl | 27 |
1 files changed, 17 insertions, 10 deletions
diff --git a/src/gm.erl b/src/gm.erl index 427fa78f4e..02ee76cd60 100644 --- a/src/gm.erl +++ b/src/gm.erl @@ -436,16 +436,6 @@ -type group_name() :: any(). -type txn_fun() :: fun((fun(() -> any())) -> any()). --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: %% @@ -490,6 +480,8 @@ -callback handle_terminate(Args :: term(), Reason :: term()) -> ok | term(). +-spec create_tables() -> 'ok' | {'aborted', any()}. + create_tables() -> create_tables([?TABLE]). @@ -506,27 +498,42 @@ table_definitions() -> {Name, Attributes} = ?TABLE, [{Name, [?TABLE_MATCH | Attributes]}]. +-spec start_link(group_name(), atom(), any(), txn_fun()) -> + rabbit_types:ok_pid_or_error(). + start_link(GroupName, Module, Args, TxnFun) -> gen_server2:start_link(?MODULE, [GroupName, Module, Args, TxnFun], [{spawn_opt, [{fullsweep_after, 0}]}]). +-spec leave(pid()) -> 'ok'. + leave(Server) -> gen_server2:cast(Server, leave). +-spec broadcast(pid(), any()) -> 'ok'. + broadcast(Server, Msg) -> broadcast(Server, Msg, 0). broadcast(Server, Msg, SizeHint) -> gen_server2:cast(Server, {broadcast, Msg, SizeHint}). +-spec confirmed_broadcast(pid(), any()) -> 'ok'. + confirmed_broadcast(Server, Msg) -> gen_server2:call(Server, {confirmed_broadcast, Msg}, infinity). +-spec info(pid()) -> rabbit_types:infos(). + info(Server) -> gen_server2:call(Server, info, infinity). +-spec validate_members(pid(), [pid()]) -> 'ok'. + validate_members(Server, Members) -> gen_server2:cast(Server, {validate_members, Members}). +-spec forget_group(group_name()) -> 'ok'. + forget_group(GroupName) -> {atomic, ok} = mnesia:sync_transaction( fun () -> |
