@ai-ecoverse/slicc-bios 1.51.7 → 1.51.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -617,7 +617,7 @@ Limits:
|
|
|
617
617
|
|
|
618
618
|
A nudge first sends the old worker `{ streams: 'mine' }` and waits for its answer (2 s at most), which makes sure it is running. It then sends the waiting worker `{ activate: 'now' }`. `sw.js` takes that message only from a window client and only with nothing else in it, and does nothing but call `self.skipWaiting()` again. Activation still waits until the old worker has no work, so a half-read download keeps holding it, and *Seven updated* still shows after 10 s.
|
|
619
619
|
|
|
620
|
-
**A slow live stream doesn't hold it (#710).** Chromium leaves an updated worker `installed` while the old one streams a slow, live response, such as a dev server's live-reload SSE that sends an event a second, or a long poll. A download the tab keeps pulling doesn't hold it: Chromium activates the update, and the old worker finishes the download. So the old worker acts only once a new worker has been waiting 5 s, which an update with nothing holding it never does (with the nudge, it activates in about 3 s). It notes when it first sees the waiting worker, on that worker's `statechange`, when a stream opens and when a tab asks for its streams. Then it ends every stream it serves that is at least 5 s old, so a load
|
|
620
|
+
**A slow live stream doesn't hold it (#710).** Chromium leaves an updated worker `installed` while the old one streams a slow, live response, such as a dev server's live-reload SSE that sends an event a second, or a long poll. A download the tab keeps pulling doesn't hold it: Chromium activates the update, and the old worker finishes the download. So the old worker acts only once a new worker has been waiting 5 s, which an update with nothing holding it never does (with the nudge, it activates in about 3 s). It notes when it first sees the waiting worker, on that worker's `statechange`, when a stream opens and when a tab asks for its streams. Then it ends every stream it serves that is at least 5 s old, so a load shorter than that is never touched. An event stream (`text/event-stream`) ends cleanly, so an `EventSource` reconnects by itself, to the new worker. A `fetch()` reader of an event stream sees the same clean end, as when its server closes the connection: the worker can't tell it from an `EventSource`, and an error would close an `EventSource` for good, since Chromium reports it to the page as an abort. Anything else ends with an error (`sw: seven updated, so <path> stopped`), so a reader knows it didn't get everything. The cut ends every stream 5 s old, in every tab, so a download that wasn't holding anything fails too if it runs while another stream holds an update. It can be fetched again. Nothing happens while a worker is only installing, so an install that fails cuts nothing. The update is active about 5 s after it's `installed`, before *Seven updated* could show. A stream that nobody reads any more is the exception (#699): Chromium lets the old worker go only once the reader takes more, so a half-read download still holds the update, and *Seven updated* names it after 10 s. Cutting the other streams can't release it, so while any stream the worker serves has gone 5 s without its reader asking for more, the worker cuts nothing and looks again 5 s later (#1104). Without that pause, every stream opened meanwhile would end 5 s after it opened, and an `EventSource` would reconnect every few seconds until that tab reloads.
|
|
621
621
|
|
|
622
622
|
## Certified packages
|
|
623
623
|
|