iniyanp
8/23/2017 - 12:40 AM

queue.scala

Usage of queues:

import scalaz.stream.{Sink, async, sink}
import scalaz.stream.async.mutable.Queue
import scalaz.stream.sink._

val p:Task[Unit] = Task.delay(println("Hello"))

val p1:Queue[Int] = async.boundedQueue(100)
//
val func:Int=>Task[Unit] = (i:Int) => Task.now(i)

val mySink:Sink[Task, Int] = sink.lift(func)

val p2 = p1.enqueueAll(Seq(1,2,3))

p2.run

val outputSink = sink.lift[Task, Unit](i => Task.delay(println(i)))


val p3 = p1.size.continuous.once

p3.runLog.run //Vector(3)