aboutsummaryrefslogtreecommitdiffhomepage
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/dev/plugin-class-classification.md12
1 files changed, 8 insertions, 4 deletions
diff --git a/docs/dev/plugin-class-classification.md b/docs/dev/plugin-class-classification.md
index 5cb8fd6e..fd6102f3 100644
--- a/docs/dev/plugin-class-classification.md
+++ b/docs/dev/plugin-class-classification.md
@@ -432,10 +432,14 @@ resolves its promise with a `Symfony\Component\Process\Process`, whose state
is the `proc_open()` resource of whichever process called `start()`; a request
resolves its promise with a `Response`, which is data.
-`Loop` remains guarded, so `Composer::getLoop()` is still an explicit error
-and neither the graph's own executor nor its downloader is reachable through
-it. Serving it needs only a `Loop` stub, since both surfaces it hands out are
-already served.
+`Loop` is a proxy stub too, so `Composer::getLoop()` — the route Composer's own
+docblocks point plugin authors at — reaches the graph's own downloader and
+executor. Its `wait()` drains the promises it is given and rethrows the first
+rejection once the group is done, which is what `React\Promise\all()` hands
+PHP; `abortJobs()` has nothing to cancel while every request settles before the
+call that started it returns. A non-null `$progress` is an explicit error: a
+`ProgressBar` is a symfony/console object each world runs its own
+implementation of, so there is none to hand across.
### Dual instantiation