Behaviours: gen_server.
key() = {pid(), term()}
| cancel/2 | |
| enqueue/3 | |
| handle_call/3 | |
| handle_cast/2 | |
| handle_info/2 | |
| init/1 | |
| note_release/1 | |
| start_link/3 | |
| waiters_ref/1 | |
| waiting/1 |
cancel(Pid::pid(), Token::term()) -> ok
enqueue(Pid::pid(), Token::term(), Timeout::pos_integer()) -> ok
handle_call(Other::term(), From::gen_server:from(), State::#state{max = pos_integer(), counter = counters:counters_ref(), max_queued = pos_integer(), waiters = atomics:atomics_ref(), order = queue:queue(key()), live = #{key() => #entry{pid = pid(), token = term(), monitor = reference(), timer = reference()}}}) -> {reply, term(), #state{max = pos_integer(), counter = counters:counters_ref(), max_queued = pos_integer(), waiters = atomics:atomics_ref(), order = queue:queue(key()), live = #{key() => #entry{pid = pid(), token = term(), monitor = reference(), timer = reference()}}}}
handle_cast(Msg::term(), State::#state{max = pos_integer(), counter = counters:counters_ref(), max_queued = pos_integer(), waiters = atomics:atomics_ref(), order = queue:queue(key()), live = #{key() => #entry{pid = pid(), token = term(), monitor = reference(), timer = reference()}}}) -> {noreply, #state{max = pos_integer(), counter = counters:counters_ref(), max_queued = pos_integer(), waiters = atomics:atomics_ref(), order = queue:queue(key()), live = #{key() => #entry{pid = pid(), token = term(), monitor = reference(), timer = reference()}}}}
handle_info(Msg::term(), State::#state{max = pos_integer(), counter = counters:counters_ref(), max_queued = pos_integer(), waiters = atomics:atomics_ref(), order = queue:queue(key()), live = #{key() => #entry{pid = pid(), token = term(), monitor = reference(), timer = reference()}}}) -> {noreply, #state{max = pos_integer(), counter = counters:counters_ref(), max_queued = pos_integer(), waiters = atomics:atomics_ref(), order = queue:queue(key()), live = #{key() => #entry{pid = pid(), token = term(), monitor = reference(), timer = reference()}}}}
init(X1::{pos_integer(), counters:counters_ref(), pos_integer()}) -> {ok, #state{max = pos_integer(), counter = counters:counters_ref(), max_queued = pos_integer(), waiters = atomics:atomics_ref(), order = queue:queue(key()), live = #{key() => #entry{pid = pid(), token = term(), monitor = reference(), timer = reference()}}}}
note_release(Pid::pid()) -> ok
start_link(Max::pos_integer(), Counter::counters:counters_ref(), MaxQueued::pos_integer()) -> {ok, pid()} | {error, term()}
waiters_ref(Pid::pid()) -> atomics:atomics_ref()
waiting(Ref::atomics:atomics_ref()) -> boolean()
Generated by EDoc