Effect-TS / effect

An ecosystem of tools to build robust applications in TypeScript
https://effect.website
MIT License
7.74k stars 246 forks source link

bug: http response stream not interruptible #3922

Open patroza opened 2 weeks ago

patroza commented 2 weeks ago

Preparations:

Steps:

Observed: Process don't exit

Expected: Process exits

changeset-bot[bot] commented 2 weeks ago

⚠️ No Changeset found

Latest commit: 6d4067a096ac687aae2b3e54cd277bd31a8a7786

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

patroza commented 2 weeks ago

It looks like one way to do it, is via:

const GetUsers = UserRouter.useScoped((router) =>
  Effect.gen(function*() {
    const ps = yield* PubSub.unbounded<Uint8Array>()
    yield* Effect.addFinalizer(() => ps.shutdown)

but shouldn't the http server terminate the listening to the Stream instead? the above would never allow streams to be finished, even if you wanted the request to be uninterruptible