summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/delegate.erl10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/delegate.erl b/src/delegate.erl
index c10e7343..0331ca01 100644
--- a/src/delegate.erl
+++ b/src/delegate.erl
@@ -197,7 +197,7 @@ handle_cast({monitor, MonitoringPid, Pid},
dict:store(Pid, {Ref, Pids1}, Monitors);
error ->
Ref = erlang:monitor(process, Pid),
- Pids = gb_sets:from_list([MonitoringPid]),
+ Pids = gb_sets:singleton(MonitoringPid),
dict:store(Pid, {Ref, Pids}, Monitors)
end,
{noreply, State#state{monitors = Monitors1}, hibernate};
@@ -207,10 +207,10 @@ handle_cast({demonitor, MonitoringPid, Pid},
Monitors1 = case dict:find(Pid, Monitors) of
{ok, {Ref, Pids}} ->
Pids1 = gb_sets:del_element(MonitoringPid, Pids),
- case gb_sets:size(Pids1) of
- 0 -> erlang:demonitor(Ref),
- dict:erase(Pid, Monitors);
- _ -> dict:store(Pid, {Ref, Pids1}, Monitors)
+ case gb_sets:is_empty(Pids1) of
+ true -> erlang:demonitor(Ref),
+ dict:erase(Pid, Monitors);
+ false -> dict:store(Pid, {Ref, Pids1}, Monitors)
end;
error ->
Monitors