Skip to content

Commit 74ab6b9

Browse files
authored
Merge pull request #419 from AVSystem/monix-bio-blocking
Blocking Either as IO in BlockingUtils
2 parents 1b8683f + c2107ec commit 74ab6b9

File tree

2 files changed

+6
-0
lines changed

2 files changed

+6
-0
lines changed

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

Lines changed: 4 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,9 @@ 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] =
43+
IO.deferTotal(IO.fromEither(blockingCode)).executeOn(ioScheduler, forceAsync = true)
44+
4145
def await[T](future: Future[T]): T =
4246
await(future, defaultTimeout)
4347

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.1"
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
@@ -303,6 +304,7 @@ object Build extends BuildDef {
303304
"com.google.code.findbugs" % "jsr305" % jsr305Version % Optional,
304305
"com.google.guava" % "guava" % guavaVersion % Optional,
305306
"io.monix" %% "monix" % monixVersion % Optional,
307+
"io.monix" %% "monix-bio" % monixBioVersion % Optional,
306308
),
307309
)
308310

0 commit comments

Comments
 (0)