const program = Effect.gen(function* (_) {
const pubsub = yield* _(PubSub.unbounded<string>());
const sender: Queue.Enqueue<string> = pubsub;
const reciever = yield* _(pubsub.subscribe());
for (let i = 0; i < 10; i++) {
yield* _(Queue.offer(sender, `Message ${i}`), Effect.fork);
}
for (let i = 0; i < 10; i++) {
const message = yield* _(Queue.take(reciever));
yield* _(Console.log(message));
}
}).pipe(Effect.scoped);
const program = Effect.gen(function* (_) {
const pubsub = yield* _(PubSub.unbounded<string>());
const sender: Queue.Enqueue<string> = pubsub;
const reciever = yield* _(pubsub.subscribe());
for (let i = 0; i < 10; i++) {
yield* _(Queue.offer(sender, `Message ${i}`), Effect.fork);
}
for (let i = 0; i < 10; i++) {
const message = yield* _(Queue.take(reciever));
yield* _(Console.log(message));
}
}).pipe(Effect.scoped);