PQueueSource

trait PQueueSource[F[_], A]
Companion
object
class Object
trait Matchable
class Any
class PQueue[F, A]

Value members

Abstract methods

def size: F[Int]
def take: F[A]

Dequeues the least element from the PQueue, possibly semantically blocking until an element becomes available.

Dequeues the least element from the PQueue, possibly semantically blocking until an element becomes available.

O(log(n))

Note: If there are multiple elements with least priority, the order in which they are dequeued is undefined. If you want to break ties with FIFO order you will need an additional Ref[F, Long] to track insertion, and embed that information into your instance for Order[A].

def tryTake: F[Option[A]]

Attempts to dequeue the least element from the PQueue, if one is available without semantically blocking.

Attempts to dequeue the least element from the PQueue, if one is available without semantically blocking.

O(log(n))

Returns

an effect that describes whether the dequeueing of an element from the PQueue succeeded without blocking, with None denoting that no element was available Note: If there are multiple elements with least priority, the order in which they are dequeued is undefined. If you want to break ties with FIFO order you will need an additional Ref[F, Long] to track insertion, and embed that information into your instance for Order[A].