gecko-dev/netwerk/ipc
Shih-Chiang Chien e6a79fe88f Bug 1426751 - Prevent FlushQueue to be invoked on multiple threads simultaneously. r=mayhemer
This issue is triggered by off-main-thread ODA listener that return error cause from OnDataAvailable callback.
A CancelEvent will be prepend to event queue and trigger race condition between CompleteResume and EndForceEnqueueing.

The `mFlushing` is checked and set in separate critical sections, therefore two threads that executing MayFlushQueue
might both pass the `mFlushing` check and trying to call FlushQueue simultaneously.

The solution is to check and set `mFlushing` in single critical section, so we can guarantee that only one FlushQueue
can be executed at anytime.

In addition, resumption is postponed until no AutoEventEnqueuer is activated. Therefore, CompleteResume will only be
triggered while all the suspension requests and auto enqueue requests are finished.

MozReview-Commit-ID: HpxzgUqYm8C

--HG--
extra : rebase_source : 9be0d37bb4475a0817dafb6270585263160a9da1
2018-01-04 18:53:02 +08:00
..
ChannelEventQueue.cpp Bug 1426751 - Prevent FlushQueue to be invoked on multiple threads simultaneously. r=mayhemer 2018-01-04 18:53:02 +08:00
ChannelEventQueue.h Bug 1426751 - Prevent FlushQueue to be invoked on multiple threads simultaneously. r=mayhemer 2018-01-04 18:53:02 +08:00
moz.build Bug 1391467 - Remove --enable-necko-protocols. r=gps,valentin 2017-08-17 17:30:57 -07:00
NeckoChannelParams.ipdlh Bug 1421324 - Modify rejection timing when processing httponly cookie on CookieServiceChild. r=jdm 2017-12-14 13:29:32 -06:00
NeckoChild.cpp Bug 1414974 - Part 3: Move Get{Inner,Outer}WindowWithId onto the specific subclasses, r=smaug 2017-11-09 10:44:47 -05:00
NeckoChild.h Bug 1391467 - Remove --enable-necko-protocols. r=gps,valentin 2017-08-17 17:30:57 -07:00
NeckoCommon.cpp
NeckoCommon.h Bug 1412048 - Replace NS_RUNTIMEABORT(var) with MOZ_CRASH_UNSAFE_OOL(var). r=froydnj data-review=francois 2017-10-24 23:38:38 -07:00
NeckoMessageUtils.h Bug 1423773 - Part 1: Remove usage of nsStringGlue.h. r=glandium 2017-12-06 16:52:51 -08:00
NeckoParent.cpp Bug 870698 - Part 2: Replace Append("") with AppendLiteral(""). r=erahm 2017-09-03 22:14:11 -07:00
NeckoParent.h Bug 1358060 - Allow postponing of unimportant resources opening during page load, class-of-service Tail flag. r=dragana 2017-08-30 09:32:00 -04:00
NeckoTargetHolder.cpp Bug 1343755 - Part 1: Add a helper function in NeckoTargetHolder for dispatching runnable. r=mayhemer, r=jesup 2017-06-20 01:56:00 -04:00
NeckoTargetHolder.h Bug 1343755 - Part 1: Add a helper function in NeckoTargetHolder for dispatching runnable. r=mayhemer, r=jesup 2017-06-20 01:56:00 -04:00
PChannelDiverter.ipdl
PDataChannel.ipdl
PFileChannel.ipdl Bug 1345094 - make http redirects to file:// uris work under e10s. r=mayhemer 2017-04-12 11:43:50 -07:00
PNecko.ipdl Bug 1358060 - Allow postponing of unimportant resources opening during page load, class-of-service Tail flag. r=dragana 2017-08-30 09:32:00 -04:00
PSimpleChannel.ipdl Bug 1380186 implement SimpleChannel Parent/Child IPC, r=kmag,mayhemer 2017-07-27 13:34:54 -07:00