Skip to content

Commit 3338fb7

Browse files
committed
docs(envlite): tighten bind-failure prose and pcntl phrasing
1 parent f0f248c commit 3338fb7

1 file changed

Lines changed: 10 additions & 11 deletions

File tree

plans/ENVLITE_SPECIFICATION.md

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ Subprocesses spawned by envlite are limited to `node`/`npm`/`composer`,
3434
plus the host `php` itself in two places: launching the dev server
3535
(`envlite serve` / `envlite up`) and running the Phase 8 site install
3636
(script piped to the subprocess via stdin). On Unix, the dev-server
37-
launch is a `pcntl_exec` (process replacement) rather than a proper
37+
launch uses `pcntl_exec` (process replacement) rather than a proper
3838
subprocess; on Windows it is a `proc_open` because `pcntl` is
3939
unavailable.
4040

@@ -88,7 +88,7 @@ shorthand for the full command line.
8888
- `up [--port=N] [--no-build]`
8989
- Same flag semantics as `init`. After all phases succeed, `up`
9090
re-probes the resolved port and runs `php -S` in the foreground —
91-
the same invocation `serve` uses. On Unix, the launch is a
91+
the same invocation `serve` uses. On Unix, the launch uses
9292
`pcntl_exec(PHP_BINARY, …)` so the envlite process is replaced in
9393
place by `php -S`; on Windows, `proc_open` is used because `pcntl`
9494
is unavailable. See "`envlite serve` runtime" below for details.
@@ -177,15 +177,14 @@ wp-load.php → wp-settings.php chain handles the rest, including
177177
once installed. The port is consumed only when `serve` runs, never
178178
at `init` time.
179179

180-
**Bind failure.** If `php -S` exits because the port is already
181-
bound (another `envlite serve` running, or any other process on
182-
`<port>`), envlite exits 1 with a single stderr line:
183-
`envlite serve: failed to bind 127.0.0.1:<port>`. No manifest
184-
mutation occurs. Note that on Unix the envlite process has already
185-
been replaced by the time `php -S` reports the bind failure, so the
186-
exit code surfaced to the shell is `php -S`'s, not envlite's;
187-
envlite's pre-flight `port_is_free` probe (in both `serve` and `up`)
188-
is the path that emits the named log line above.
180+
**Bind failure.** envlite's pre-flight `port_is_free` probe (in both
181+
`serve` and `up`) detects an already-bound port and exits 1 with a
182+
single stderr line: `envlite serve: failed to bind 127.0.0.1:<port>`.
183+
No manifest mutation occurs. If the port becomes bound in the race
184+
window between the probe and the launch, the Unix path's envlite
185+
process has already been replaced by the time `php -S` reports the
186+
failure, so the exit code surfaced to the shell is `php -S`'s, not
187+
envlite's.
189188

190189
---
191190

0 commit comments

Comments
 (0)