5

(できれば) Scalaz Zio に関する簡単な質問です。

Zio にリファクタリングした古いコードがいくつかあります。そのコードの 1 つのパスが、以前とまったく同じように動作し続けるようにします。

  • 同期
  • ブロッキング
  • 現在のスレッド (これは厳しい要件です)

IO古いブロッキング コードのように動作するように実行するにはどうすればよいですか?

私は現在使用しています:

  private lazy val blockingRts = new RTS {}
  def runBlocking[E, A](io: IO[E, A]): Either[E, A] = {
    blockingRts.unsafeRun(io.attempt)
  }

トリックをしているように見えますが、これが正しいとは確信が持てません。これは古いコードと 100% 後方互換性がありますか?

4

1 に答える 1