# Module gproc_lib #
* [Description](#description)
* [Function Index](#index)
* [Function Details](#functions)
Extended process registry.
__Authors:__ Ulf Wiger ([`ulf@wiger.net`](mailto:ulf@wiger.net)).
## 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()`