Skip to content

IOCP: CTRL_CLOSE_EVENT, CREATE_NO_WINDOW, KILL_ON_JOB_CLOSE and sync-handle semantics #11

Closed

Description

@proggeramlug

Windows process and console semantics that differ from Node/libuv, found in the PR #5 review (item 9):

  • CTRL_CLOSE_EVENT: the console handler returns TRUE for it (signals.rs), so handlers registered earlier by the host never run and the process terminates immediately. Hup being best-effort is documented; skipping host handlers is not.
  • CREATE_NO_WINDOW: it is unconditional (process.rs). Children that should share the console no longer receive Ctrl+C from the terminal, unlike Node.
  • KILL_ON_JOB_CLOSE: it kills grandchildren when the job is released, even after the leader exited normally. On Unix they would survive.
  • Duplex synchronous handles share one FIFO for reads and writes, so an idle read blocks every write.
  • integration.rs: it reports a pump error once, then the loop stalls and Drop spins.

Each needs a decision (match Node, or document the difference) and a Windows test.

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