Skip to content

Commit ba3c75c

Browse files
committed
monix-bio-blocking: add asIO utils to BlockingUtils
1 parent b254808 commit ba3c75c

File tree

2 files changed

+7
-0
lines changed

2 files changed

+7
-0
lines changed

commons-core/jvm/src/main/scala/com/avsystem/commons/concurrent/BlockingUtils.scala

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.avsystem.commons.collection.CloseableIterator
55
import monix.eval.Task
66
import monix.execution.Scheduler
77
import monix.reactive.Observable
8+
import monix.bio.IO
89

910
import scala.concurrent.Await
1011
import scala.concurrent.duration._
@@ -38,6 +39,10 @@ abstract class BlockingUtils {
3839
def asTask[T](blockingCode: => T): Task[T] =
3940
Task.eval(blockingCode).executeOn(ioScheduler, forceAsync = true)
4041

42+
def asIO[A, B](blockingCode: => Either[A, B]): IO[A, B] = IO.deferTotal {
43+
IO.fromEither(blockingCode)
44+
}.executeOn(ioScheduler, forceAsync = true)
45+
4146
def await[T](future: Future[T]): T =
4247
await(future, defaultTimeout)
4348

project/Build.scala

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ object Build extends BuildDef {
4949
val scalaLoggingVersion = "3.9.4"
5050
val akkaVersion = "2.6.14"
5151
val monixVersion = "3.4.0"
52+
val monixBioVersion = "1.2.0"
5253
val mockitoVersion = "3.9.0"
5354
val circeVersion = "0.13.0" // benchmark only
5455
val upickleVersion = "1.3.11" // benchmark only
@@ -300,6 +301,7 @@ object Build extends BuildDef {
300301
"com.google.code.findbugs" % "jsr305" % jsr305Version % Optional,
301302
"com.google.guava" % "guava" % guavaVersion % Optional,
302303
"io.monix" %% "monix" % monixVersion % Optional,
304+
"io.monix" %% "monix-bio" % monixBioVersion % Optional,
303305
),
304306
)
305307

0 commit comments

Comments
 (0)