Improve resilience of AbortSignals.
parent
e17e4b71c2
commit
1d7081d1e4
|
@ -56,9 +56,16 @@ AbortSignal::Aborted() const
|
|||
void
|
||||
AbortSignal::Abort()
|
||||
{
|
||||
MOZ_ASSERT(!mAborted);
|
||||
// Re-entrancy guard
|
||||
if (mAborted) {
|
||||
return;
|
||||
}
|
||||
mAborted = true;
|
||||
|
||||
// We might be deleted as a result of aborting a follower, so ensure we
|
||||
// stay alive until all followers have been aborted.
|
||||
RefPtr<AbortSignal> pinThis = this;
|
||||
|
||||
// Let's inform the followers.
|
||||
for (uint32_t i = 0; i < mFollowers.Length(); ++i) {
|
||||
mFollowers[i]->Aborted();
|
||||
|
|
|
@ -14,7 +14,7 @@ EXPORTS.mozilla.dom += [
|
|||
'AbortSignal.h',
|
||||
]
|
||||
|
||||
UNIFIED_SOURCES += [
|
||||
SOURCES += [
|
||||
'AbortController.cpp',
|
||||
'AbortSignal.cpp',
|
||||
]
|
||||
|
|
Loading…
Reference in New Issue