mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
8ba777d027
When workers shut down we discard the event queue rather than running it to completion. Originally workers managed their event queue themselves and would simply iterate through the array of events and cancel them all. After bug 914762 this was done by setting a (thread-)global "canceling" flag and then calling NS_ProcessPendingEvents. But this neglects that a shut down request can be received while the worker is in a sync queue. In this case, calling NS_ProcessPendingEvents will process any events pending in the sync queue, which is *not* the queue we need to cancel. The fix is, if we are in a sync queue when NotifyInternal is called, to defer clearing the queue until the top-most sync queue is destroyed and we are about to return to the regular event queue. Only then can we call NS_ProcessPendingEvents to clear out the queue. Because we can never process any events from this queue while sync queues are active, the timing of the mass cancellation is unchanged from the perspective of events in the regular queue. |
||
---|---|---|
.. | ||
2dcontext | ||
ambient-light | ||
battery-status | ||
content-security-policy | ||
cors | ||
custom-elements | ||
dom | ||
DOMEvents | ||
domparsing | ||
domxpath | ||
editing | ||
encoding | ||
eventsource | ||
ext-xhtml-pubid/the-xhtml-syntax/parsing-xhtml-documents | ||
fetch/nosniff | ||
FileAPI | ||
geolocation-API | ||
hr-time | ||
html | ||
html-media-capture | ||
IndexedDB | ||
infrastructure | ||
js/builtins | ||
media-source | ||
mediacapture-streams | ||
microdata/microdata-dom-api | ||
mixed-content | ||
navigation-timing | ||
notifications | ||
old-tests/submission | ||
page-visibility | ||
pointerevents | ||
pointerlock | ||
progress-events | ||
proximity | ||
quirks-mode | ||
referrer-policy | ||
resource-timing | ||
screen-orientation | ||
selection | ||
selectors/attribute-selectors/attribute-case | ||
selectors-api/tests/submissions/Opera | ||
service-workers/cache-storage | ||
shadow-dom/untriaged | ||
subresource-integrity | ||
touch-events | ||
typedarrays | ||
url | ||
user-timing | ||
web-animations | ||
webaudio/the-audio-api/the-mediaelementaudiosourcenode-interface | ||
WebCryptoAPI | ||
webgl | ||
WebIDL/ecmascript-binding/es-exceptions | ||
webmessaging | ||
webrtc | ||
websockets | ||
webstorage | ||
webvtt | ||
workers | ||
XMLHttpRequest | ||
MANIFEST.json | ||
mozilla-sync |