Skip to content

IOCP: named-pipe listener ignores backlog; clients don't retry ERROR_PIPE_BUSY #8

Closed

Description

@proggeramlug

The IOCP named-pipe listener behaves as if its backlog were 1.

  • Server: pipes.rs keeps a single spare instance and ignores opts.backlog.
  • Client: Open::Pipe is one CreateFileW call, with no ERROR_PIPE_BUSY / WaitNamedPipeW retry.
  • Effect: when two clients connect before the host services the accept, the second fails with ERROR_PIPE_BUSY. On Unix listen(backlog) is honoured, and libuv keeps several pending instances and retries.

Expected:

  • Keep up to backlog pending instances.
  • Clients retry ERROR_PIPE_BUSY within their deadline.
  • A Windows contract test connects backlog clients before the first accept is serviced, and all of them succeed.

Found in the PR #5 integrator review (item 5).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions