restore
around them, or not
mask
(which the uncancelable
we're discussing)
restore
@djspiewak
well like I said, I'm more than happy to share the prototype experiment results, design notes, and open questions if people are interested in taking a whack at it :-) PRs very much welcome. If no one else gets to it in the coming months, I'm sure I or someone else will implement it in the 2.x timeline
I would love to try it. I want to have it in Monix but I feel a little bit powerless, not even knowing how to start. :D I have a plenty of free time though and I'm familiar with internals. I would be happy to attempt it for cats.effect.IO
first and then port to Monix. I don't get my hopes up but at the very least I might learn something in the process
object IORepl {
implicit class IOOps[A](io: IO[A]) extends AnyVal {
def yolo: A = io.unsafeRunSync()
}
implicit val ec: ExecutionContext = ExecutionContext.global
implicit val timer: Timer[IO] = IO.timer(ec)
implicit val cs: ContextShift[IO] = IO.contextShift(ec)
}
import IORepl._
def run(args: List[String]) = ExitCode.Success.pure[IO]
object Playground extends IOApp {
def run(args: List[String]) = ExitCode.Success.pure[IO]
implicit class Runner[A](s: Stream[IO, A]) {
def yolo: Unit = s.compile.drain.unsafeRunSync
def yoloV: Vector[A] = s.compile.toVector.unsafeRunSync
}
// put("hello").to[F]
def put[A](a: A): IO[Unit] = IO(println(a))
}
val blocker = Blocker.etc(global)