ZIO 中的有界优先级队列

Bounded priority queue in ZIO

ZIO中有TPriorityQueue是无界的。有没有办法让它变得有界?

如果你不太关心性能,你可以像这样快速而肮脏地做一些事情:

case class TPW(tpq: TPriorityQueue[Int]) {
  def offer(e: Int) = ZSTM.whenM(tpq.size.map(_ < 50))(tpq.offer(e))
  // .. other methods
}

这将是一个丢弃队列。