Browse Source

Pass Pid in update call.

Roberto Ostinelli 3 years ago
parent
commit
5746ffe4f1
2 changed files with 17 additions and 8 deletions
  1. 1 1
      src/syn_registry.erl
  2. 16 7
      test/syn_registry_SUITE.erl

+ 1 - 1
src/syn_registry.erl

@@ -234,7 +234,7 @@ handle_call({'3.0', register_or_update_on_node, RequesterNode, Name, Pid, MetaOr
 
                 {Name, Pid, TableMeta, _, MRef, _} when is_function(MetaOrFun) ->
                     %% update with fun
-                    Meta = MetaOrFun(TableMeta),
+                    Meta = MetaOrFun(Pid, TableMeta),
                     do_register_on_node(Name, Pid, Meta, MRef, normal, RequesterNode, on_registry_process_updated, State);
 
                 {Name, Pid, MetaOrFun, _, _, _} ->

+ 16 - 7
test/syn_registry_SUITE.erl

@@ -1488,12 +1488,17 @@ three_nodes_update(Config) ->
     rpc:call(SlaveNode2, syn, set_event_handler, [syn_test_event_handler_callbacks]),
 
     %% errors
-    {error, undefined} = syn:update_registry(scope_all, "unknown", fun(ExistingMeta) -> ExistingMeta end),
+    {error, undefined} = syn:update_registry(scope_all, "unknown", fun(_IPid, ExistingMeta) -> ExistingMeta end),
 
     %% update
-    {ok, {Pid, {recipient, TestPid, 20}}} = syn:update_registry(scope_all, "my-proc", fun({recipient, TestPid0, Count}) ->
-        {recipient, TestPid0, Count * 2}
-    end),
+    {ok, {Pid, {recipient, TestPid, 20}}} = syn:update_registry(
+        scope_all,
+        "my-proc",
+        fun(IPid, {recipient, TestPid0, Count}) ->
+            IPid = Pid,
+            {recipient, TestPid0, Count * 2}
+        end
+    ),
 
     %% retrieve
     syn_test_suite_helper:assert_wait(
@@ -1527,9 +1532,13 @@ three_nodes_update(Config) ->
     ]),
 
     %% update on remote
-    {ok, {PidOn1, {recipient, TestPid, 1001}}} = syn:update_registry(scope_all, "my-proc-on-1", fun({recipient, TestPid0, Count}) ->
-        {recipient, TestPid0, Count + 1}
-    end),
+    {ok, {PidOn1, {recipient, TestPid, 1001}}} = syn:update_registry(
+        scope_all,
+        "my-proc-on-1",
+        fun(_IPid, {recipient, TestPid0, Count}) ->
+            {recipient, TestPid0, Count + 1}
+        end
+    ),
 
     %% retrieve
     syn_test_suite_helper:assert_wait(