~/bend-docscommunity

queue.bend checks

raw source on the hub · import bend-kit-scheduler@0.1.0.0/queue.bend as Queue

Pure generic scheduler queue; Nat deadlines and never-reused FIFO IDs.

2 imports
import Base
import bend-kit-collections@0.1.2.0/heap.bend as H

Types

type Ticket source · line 5 · raw

@-A:Data -> Data

type State source · line 8 · raw

@-A:Data -> Data

type Taken source · line 113 · raw

@-A:Data -> Data

Definitions

def id source · line 11 · raw

@-A:Data -> @t:Ticket<A> -> Nat

def deadline source · line 16 · raw

@-A:Data -> @t:Ticket<A> -> Nat

def payload source · line 21 · raw

@-A:Data -> @t:Ticket<A> -> A

def le.same source · line 26 · raw

@b:Bool -> @i:Nat -> @j:Nat -> @d:Nat -> @e:Nat -> Bool

def le source · line 33 · raw

@-A:Data -> @a:Ticket<A> -> @b:Ticket<A> -> Bool

def new source · line 38 · raw

@-A:Data -> State<A>

def remove.list.keep source · line 62 · raw

@-A:Data -> @b:Bool -> @t:Ticket<A> -> @rest:List<&2, Ticket<A>> -> List<&2, Ticket<A>>

ponytail: eager O(n) cancellation; indexed deletion if cancellation dominates.

def remove.list source · line 69 · raw

@-A:Data -> @xs:List<&2, Ticket<A>> -> @+i:Nat -> List<&2, Ticket<A>>

def find.list.choose source · line 99 · raw

@-A:Data -> @b:Bool -> @t:Ticket<A> -> @rest:Maybe<&2, Ticket<A>> -> Maybe<&2, Ticket<A>>

Reference observation for laws; completion uses the single-pass take below.

def find.list source · line 106 · raw

@-A:Data -> @xs:List<&2, Ticket<A>> -> @+i:Nat -> Maybe<&2, Ticket<A>>

def take.keep source · line 117 · raw

@-A:Data -> @b:Bool -> @t:Ticket<A> -> @result:Taken<A> -> Taken<A>

Remove all matching entries and return the first token in one traversal.

def take.list source · line 128 · raw

@-A:Data -> @xs:List<&2, Ticket<A>> -> @+i:Nat -> Taken<A>

def complete.taken source · line 135 · raw

@-A:Data -> @result:Taken<A> -> @n:Nat -> @h:0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>> -> Pair(State<A>, Maybe<&2, Ticket<A>>)

def complete source · line 140 · raw

@-A:Data -> @i:Nat -> @s:State<A> -> Pair(State<A>, Maybe<&2, Ticket<A>>)

def next_id source · line 162 · raw

@-A:Data -> @s:State<A> -> Nat

Non-consuming observations used by adapters and laws.

def pending source · line 167 · raw

@-A:Data -> @s:State<A> -> 0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>>

def running source · line 172 · raw

@-A:Data -> @s:State<A> -> List<&2, Ticket<A>>

Templates

template enqueue source · line 41 · raw

@-A:Data -> @d:Nat -> @x:A -> @s:State<A> -> Pair(State<A>, Nat)

template select.due source · line 46 · raw

@-A:Data -> @b:Bool -> @i:Nat -> @h:0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>> -> @r:List<&2, Ticket<A>> -> @t:Ticket<A> -> @l:0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>> -> @q:0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>> -> Pair(State<A>, Maybe<&2, Ticket<A>>)

template select source · line 54 · raw

@-A:Data -> @now:Nat -> @s:State<A> -> Pair(State<A>, Maybe<&2, Ticket<A>>)

template remove.heap.keep source · line 76 · raw

@-A:Data -> @b:Bool -> @t:Ticket<A> -> @l:0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>> -> @r:0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>> -> 0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>>

template remove.heap source · line 85 · raw

@-A:Data -> @h:0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>> -> @+i:Nat -> 0xd2d968d969a26029a632a3347c989456/heap.Heap<Ticket<A>>

template cancel source · line 92 · raw

@-A:Data -> @i:Nat -> @s:State<A> -> State<A>

template requeue.found source · line 145 · raw

@-A:Data -> @found:Maybe<&2, Ticket<A>> -> @d:Nat -> @s:State<A> -> Pair(State<A>, Bool)

template requeue.completed source · line 154 · raw

@-A:Data -> @r:Pair(State<A>, Maybe<&2, Ticket<A>>) -> @d:Nat -> Pair(State<A>, Bool)

template requeue source · line 158 · raw

@-A:Data -> @i:Nat -> @d:Nat -> @s:State<A> -> Pair(State<A>, Bool)