Skip to content

Reactor pool: sendFile() is not supported on worker responses #105

Description

@EdmondDantes

Under TRUE_ASYNC_SERVER_REACTOR_POOL=1 a handler that calls $response->sendFile() gets no delivery: the worker-side stream ops (src/core/worker_dispatch.c, worker_stream_ops) have no send_file op, and the dispose path renders only the buffered body — the send-file request is silently dropped.

Local (non-pool) H1/H2/H3 all deliver sendFile via their per-protocol pumps.

Possible shapes:

  • a dedicated wire kind that hands the (path, offset, length) to the reactor and runs the existing reactor-side sendfile pump (http3_static_response.c already pumps files on the reactor for the static path), or
  • reuse the static-handler HARD_ZERO machinery with the worker only resolving/validating the file.

Until then sendFile() under the pool should at least fail loudly instead of dropping.

Context: the streaming reverse path (STREAM_HEADERS/CHUNK/END/ABORT wires, credit backpressure) landed in PR #104 — sendFile is the one remaining response mode not marshalled across the split.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions