Browse Source

check unreg options in remove_reg/3

Ulf Wiger 11 years ago
parent
commit
21bd02b766
2 changed files with 5 additions and 3 deletions
  1. 2 2
      src/gproc.erl
  2. 3 1
      src/gproc_lib.erl

+ 2 - 2
src/gproc.erl

@@ -2095,7 +2095,7 @@ handle_call({reg_shared, {_T,l,_} = Key, Val}, _From, S) ->
 handle_call({unreg, {_,l,_} = Key}, {Pid,_}, S) ->
     case ets:lookup(?TAB, {Pid,Key}) of
         [{_, r}] ->
-            _ = gproc_lib:remove_reg(Key, Pid, unreg),
+            _ = gproc_lib:remove_reg(Key, Pid, unreg, []),
             {reply, true, S};
         [{_, Opts}] when is_list(Opts) ->
             _ = gproc_lib:remove_reg(Key, Pid, unreg, Opts),
@@ -2106,7 +2106,7 @@ handle_call({unreg, {_,l,_} = Key}, {Pid,_}, S) ->
 handle_call({unreg_shared, {_,l,_} = Key}, _, S) ->
     _ = case ets:lookup(?TAB, {shared, Key}) of
 	    [{_, r}] ->
-		_ = gproc_lib:remove_reg(Key, shared, unreg);
+		_ = gproc_lib:remove_reg(Key, shared, unreg, []);
 	    [{_, Opts}] ->
 		_ = gproc_lib:remove_reg(Key, shared, unreg, Opts);
 	    [] ->

+ 3 - 1
src/gproc_lib.erl

@@ -284,7 +284,9 @@ ensure_monitor(Pid, Scope) when Scope==g; Scope==l ->
     end.
 
 remove_reg(Key, Pid, Event) ->
-    remove_reg(Key, Pid, Event, []).
+    Reg = remove_reg_1(Key, Pid),
+    Rev = remove_reverse_mapping(Event, Pid, Key),
+    [Reg, Rev].
 
 remove_reg(Key, Pid, Event, Opts) ->
     Reg = remove_reg_1(Key, Pid),