const program = Effect.gen(function* (){
const scope = yield* Scope.make();
// 1 case: program requires a scope
yield* Effect.forkIn(gameRunner, scope).pipe(Effect.withLogSpan('forkIn'))
// 2 case: no scope required
yield* pipe(
gameRunner,
Effect.fork,
Scope.extend(scope),
Effect.withLogSpan('Scope.extend')
)
yield* Effect.fork(
Scope.close(scope, Exit.void).pipe(
Effect.delay(Duration.seconds(2))
),
)
yield* Effect.never
})
const program = Effect.gen(function* (){
const scope = yield* Scope.make();
// 1 case: program requires a scope
yield* Effect.forkIn(gameRunner, scope).pipe(Effect.withLogSpan('forkIn'))
// 2 case: no scope required
yield* pipe(
gameRunner,
Effect.fork,
Scope.extend(scope),
Effect.withLogSpan('Scope.extend')
)
yield* Effect.fork(
Scope.close(scope, Exit.void).pipe(
Effect.delay(Duration.seconds(2))
),
)
yield* Effect.never
})