Skip to content

Commit bfddfe5

Browse files
committed
fix(managed): fix issue with releasing of resource happens multiple times
1 parent d5becbb commit bfddfe5

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/main/Managed.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,12 @@ export class Managed<E1, A1, R1> {
3636
acquire: FIO<E1, A1, R1>,
3737
release: (a: A1) => FIO<never, void, R2>
3838
): Managed<E1, A1, R1 & R2> {
39-
return Managed.of(
40-
acquire
41-
.map(a1 =>
42-
Reservation.of(FIO.of(a1).addEnv<R2>(), release(a1).addEnv<R1>())
39+
return Managed.of<E1, A1, R1 & R2>(
40+
acquire.chain(a1 =>
41+
release(a1).once.map(r =>
42+
Reservation.of(FIO.of(a1).addEnv<R1>(), r.addEnv<R2>())
4343
)
44-
.addEnv()
44+
)
4545
)
4646
}
4747

test/Managed.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ describe('Managed', () => {
6868
assert.ok(r.isReleased)
6969
})
7070

71-
it.skip('should release only once', () => {
71+
it('should release only once', () => {
7272
const r = Resource()
7373
const runtime = testRuntime()
7474

0 commit comments

Comments
 (0)