Module roadrunner_overload_queue

Behaviours: gen_server.

Data Types

key()

key() = {pid(), term()}

Function Index

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

Function Details

cancel/2

cancel(Pid::pid(), Token::term()) -> ok

enqueue/3

enqueue(Pid::pid(), Token::term(), Timeout::pos_integer()) -> ok

handle_call/3

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/2

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/2

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/1

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/1

note_release(Pid::pid()) -> ok

start_link/3

start_link(Max::pos_integer(), Counter::counters:counters_ref(), MaxQueued::pos_integer()) -> {ok, pid()} | {error, term()}

waiters_ref/1

waiters_ref(Pid::pid()) -> atomics:atomics_ref()

waiting/1

waiting(Ref::atomics:atomics_ref()) -> boolean()


Generated by EDoc