Skip to content

PureConc not running finalizers #3430

@durban

Description

@durban

I might be missing something completely obvious, but PureConc doesn't seem to run finalizers:

    "foo" in {
      val t: PureConc[Int, Int] = for {
        c <- F.ref(0)
        latch <- F.deferred[Unit]
        fib <- F.start((latch.complete(()) *> F.never[Unit]).onCancel(c.update(_ + 1)))
        _ <- latch.get
        _ <- fib.cancel
        v <- c.get
      } yield v

      pure.run(t) mustEqual Outcome.Succeeded(Some(1))
    }

If I put this in PureConcSpec, it fails with:

Succeeded(Some(0)) != Succeeded(Some(1))

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions