Use a function call effect
so that this state transition applied on the leader node only.
This commit is contained in:
		
							parent
							
								
									e004f0bb91
								
							
						
					
					
						commit
						2613595b5e
					
				|  | @ -45,11 +45,13 @@ apply(Meta, {register, ClientId, Pid}, #state{client_ids = Ids} = State0) -> | |||
|     {Effects, Ids1} = | ||||
|         case maps:find(ClientId, Ids) of | ||||
|             {ok, OldPid} when Pid =/= OldPid -> | ||||
|                 catch gen_server2:cast(OldPid, duplicate_id), | ||||
|                 {[{demonitor, process, OldPid}, | ||||
|                   {monitor, process, Pid}], maps:remove(ClientId, Ids)}; | ||||
|                 Effects0 = [{demonitor, process, OldPid}, | ||||
|                             {monitor, process, Pid}, | ||||
|                             {mod_call, gen_server2, cast, [OldPid, duplicate_id]}], | ||||
|                 {Effects0, maps:remove(ClientId, Ids)}; | ||||
|             error -> | ||||
|                 {[{monitor, process, Pid}], Ids} | ||||
|               Effects0 = [{monitor, process, Pid}], | ||||
|               {Effects0, Ids} | ||||
|         end, | ||||
|     State = State0#state{client_ids = maps:put(ClientId, Pid, Ids1)}, | ||||
|     {State, ok, Effects ++ snapshot_effects(Meta, State)}; | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue