#Module gproc_lib#
* [Description](#description)
* [Function Index](#index)
* [Function Details](#functions)
Extended process registry.
__Authors:__ Ulf Wiger ([`ulf.wiger@ericsson.com`](mailto:ulf.wiger@ericsson.com)).
##Description##
This module implements an extended process registry
For a detailed description, see gproc/doc/erlang07-wiger.pdf.
##Function Index##
##Function Details##
###add_monitor/3##
`add_monitor(T, Pid, Ref) -> any()`
###await/3##
`await(Key, WPid, From) -> any()`
###do_set_counter_value/3##
`do_set_counter_value(Key, Value, Pid) -> any()`
###do_set_value/3##
`do_set_value(Key, Value, Pid) -> any()`
###ensure_monitor/2##
`ensure_monitor(Pid, Scope) -> any()`
###insert_many/4##
insert_many(T::type(), Scope::scope(), KVL::[{key(), any()}], Pid::pid()) -> {true, list()} | false
###insert_reg/4##
insert_reg(K::key(), Value::any(), Pid::pid() | shared, Scope::scope()) -> boolean()
###notify/2##
`notify(Key, Opts) -> any()`
###notify/3##
`notify(Event, Key, Opts) -> any()`
###remove_many/4##
`remove_many(T, Scope, L, Pid) -> any()`
###remove_monitor/3##
`remove_monitor(T, Pid, Ref) -> any()`
###remove_monitors/3##
`remove_monitors(Key, Pid, MPid) -> any()`
###remove_reg/3##
`remove_reg(Key, Pid, Event) -> any()`
###remove_reg/4##
`remove_reg(Key, Pid, Event, Opts) -> any()`
###remove_reverse_mapping/3##
`remove_reverse_mapping(Event, Pid, Key) -> any()`
###remove_wait/4##
`remove_wait(Key, Pid, Ref, Waiters) -> any()`
###update_aggr_counter/3##
`update_aggr_counter(C, N, Val) -> any()`
###update_counter/3##
`update_counter(Key, Incr, Pid) -> any()`
###valid_opts/2##
`valid_opts(Type, Default) -> any()`