Commit Graph

53 Commits

Author SHA1 Message Date
Jim Mathies
28d2d690d1 Bug 648935 - Process native events during calls to WaitForNotify in the child process when nested native event loops are detected in the parent. r=bsmedberg. 2011-05-18 06:57:08 -05:00
Chris Jones
c73c49451c Bug 648935: Need to use the "remote stack depth view" when deciding whether to undefer, too. r=bsmedberg 2011-05-04 15:55:54 -05:00
Chris Jones
8ae6313c8a Bug 556214, part 3: IPC code wants to be using non-reentrant Monitor. r=bent 2011-04-29 14:21:57 -05:00
Justin Lebar
02a6d6af4a Bug 592557 - Eliminate uses of PR_Atomic{Increment,Decrement} functions in favor of PR_ATOMIC_{INCREMENT,DECREMENT} macros. r=bsmedberg,gal 2011-03-28 15:58:49 -04:00
Chris Jones
c1b2f2df15 Bug 572134: "Undefer" the in-call that lost a race at stack-depth 1, if there is one, when RPCChannel code leaves the C++ stack, so that the in-call can be processed if there is an immediately following out-call. r=bsmedberg 2011-01-12 01:07:17 -06:00
Benedict Hsieh
619e4b432d Bug 592768 - When using async launch, the toplevel actor doesn't have a process handle. Set the process ID with a callback function (OnChannelConnected). r=cjones 2010-10-08 16:24:36 -07:00
Chris Jones
ed34027b83 Bug 540097: Add a ProcessingError(what) notification interface for top-level actors. r=bent 2010-08-20 18:24:40 -05:00
Jim Mathies
097728a511 Bug 558986 - detect and resolve races between MS-COM RPC and IPDL RPC by implementing IMessageFilter and processing pending IPDL RPC calls while waiting for MS-COM RPC responses. Original patch by bsmedberg, r=cjones/jimm/ehsan with followup fixes by Jim Mathies, r=bsmedberg 2010-05-21 11:48:34 -04:00
Jim Mathies
4c5f8658f1 Bug 558986 - Backout of fix for crashes in TSF with Flash/Silverlight on tablets. CLOSED TREE 2010-05-17 14:36:43 -05:00
Benjamin Smedberg
a8e681c88f Bug 558986 - Fix for crashes in TSF with Flash/Silverlight on tablets (OLE/COM nested event loops). r=cjones, jimm, ehsan. 2010-05-17 11:33:34 -05:00
Benjamin Smedberg
7bdd841d04 Bug 561817 part A: Entered/ExitedCall callbacks for toplevel actors upon RPC in-calls. r=bsmedberg 2010-04-29 11:49:00 -05:00
Benjamin Smedberg
66bd69fb25 Bug 561871 part B: don't use Windows events to enter/exit a nested event loop within an RPC stack frame, because delivery of those events isn't always associated with the correct stack frame, and also because the events can be lost if they race with an incoming RPC reply message. Instead, keep a linked list (on the stack) of RPC frames globally and per-channel, to associate requests to enter a nested event loop with the correct frame, r=jimm 2010-04-28 11:01:09 -04:00
Chris Jones
f3f1260a1e Bug 545733: |const|-ify some *Channel methods. r=bent 2010-04-27 00:42:59 -05:00
Jim Mathies
c05a8971ee Bug 545338 - RPCChannel should use events rather than thread messages for NotifyWokerThread. r=bent. 2010-03-25 16:53:10 -05:00
Jim Mathies
cbfd4e78fa Bug 553606 - [OOPP] Limit spin loop to a call depth of one. r=bent. 2010-03-24 16:49:05 -05:00
Chris Jones
edce9885b4 Bug 554466: Only EnqueuePending when there's been an rpc out-call. r=bent 2010-03-24 00:52:47 -05:00
Chris Jones
abb29365b1 Bug 552014: Don't run OnMaybeDequeueOne from a nested context. r=bent 2010-03-18 17:52:33 -05:00
Chris Jones
9fe1b05a9a Bug 533055: Part 3: Track |Message|s being processed on the C++ stack and offer a DumpRPCStack() method to print them. r=bent 2010-03-18 17:52:32 -05:00
Chris Jones
eebd12ce5f b=550026 Cancel PluginCrashed when PluginModule is deleted. r=bsmedberg 2010-03-08 09:16:02 +13:00
Chris Jones
95e213a8d9 Bug 550026: Don't deliver NotifyError() when RPCChannel code is on the stack. r=bent 2010-03-11 23:21:58 -06:00
Chris Jones
6c6abc2da4 Followup to bug 545342: atomically refcount the dequeue task. r=bent 2010-03-11 16:24:15 -06:00
Chris Jones
89977a039f Merge backout 2010-03-11 05:07:51 -06:00
Chris Jones
a0744e620e Backing out bug 550026 due to orange 2010-03-11 05:07:42 -06:00
Chris Jones
2ffc24d405 Bug 549888: Part 1: Let the channel listener decide how to mediate RPC races, defaulting to "child wins". r=bent 2010-03-11 01:35:30 -06:00
Chris Jones
0458da5721 b=550026 Don't call PluginCrashed while plugin code is still on the stack r=bsmedberg 2010-03-08 09:16:02 +13:00
Josh Matthews
504425e0e6 Bug 545342: Cancel dequeue task on channel error. r=cjones 2010-02-15 20:47:00 +13:00
Chris Jones
ba88daff32 Bug 545455, part 2: Expose override-able hooks for top-level IPDL actors to be notified on stack entrance/exit. r=bent 2010-02-16 12:44:22 -06:00
Chris Jones
a5b983b643 Bug 545455, part 1: Track when RPCChannel code is first pushed on the C++ stack and last popped. r=bent 2010-02-16 12:44:21 -06:00
Jim Mathies
77888387e8 e10s bustage fix after bad merge. 2010-02-12 00:31:08 -06:00
Chris Jones
bdd1e7b305 Bug 540004, part 3: Add a ShouldContinue() interface to IPDL actors that allows them to decide how a hang should be treated. r=bent 2010-02-09 18:02:55 -06:00
Chris Jones
87f19e3cc8 Bug 540004, part 2: Detect hangs while awaiting synchronous IPC replies (on POSIX). r=bent 2010-02-09 18:02:54 -06:00
Jim Mathies
69719d7efc Bug 538918 - [OOPP] Modal system dialogs cause UI freeze w/windowless controls. r=bent, cjones. 2010-02-09 16:34:38 -06:00
Chris Jones
ab07171c3c Bug 540886, part 2: Offer a BlockChild() interface to RPC protocols that allows parents to prevent children from sending messages back of their own volition until the parent calls UnblockChild(). r=bent 2010-01-27 00:41:32 -06:00
Chris Jones
185beeeacd Bug 521929, part 2: Save racy RPC replies onto a special stack until they're the reply to the right out-call. r=bent 2010-01-21 20:04:10 -06:00
Chris Jones
2a7a132a2b bug 529005: detect child process shutdowns vs. crashes, and expose this information to IPDL actors in a new |ActorDestroy(why)| interface. also ensure that subprotocol actors are notified of shutdown and cleaned up properly. r=bsmedberg r=bent 2009-12-03 02:16:28 -06:00
Ben Turner
0ec5bb9fda Bug 525792 - 'Fix leaks running mochitests'. 2009-11-12 14:16:54 -08:00
Chris Jones
b10d1a759b fix bugs in RPC race resolution 2009-10-09 01:21:39 -05:00
Chris Jones
cfcb0dbb56 hack around lack of C99 format specifiers on Windows 2009-10-08 18:07:24 -05:00
Chris Jones
3373b62d6e followup to RPC race resolution --- convert RPC_DEBUGABORT into RPC_ASSERT, and pre-emptively fix potential spurious race detector alarms 2009-10-08 17:41:18 -05:00
Chris Jones
2ee72bbdde add racy RPC resolution. also add better debugging info and fix two shared-memory-race bugs. 2009-10-08 16:44:43 -05:00
Chris Jones
3d2a340ad7 fix sync/RPC deadlock bug that came to me in a dream. r=mr.sandman 2009-09-22 10:23:29 -05:00
Chris Jones
bad3ef29a6 bug 517923: support serializing ns*Strings that represent NULL, use this mechanism in PluginInstanceParent/PluginModuleChild. also add basic crash-handling to *Channel code and some NS_OVERRIDE annotations. 2009-09-21 21:02:15 -05:00
Chris Jones
0beb0f3ce6 unblock RPC waiters for async messages, for realz 2009-09-11 02:28:09 -05:00
Chris Jones
d6674f7056 fix bug introduced by d0d751ed8c3e where receiving multiple async messages while awaiting an RPC reply could screw things up. async messages no longer unblock RPC waiters. 2009-09-11 01:05:42 -05:00
Chris Jones
13e950f139 make RPC unblock for async and sync, as it supposed to have 2009-09-10 18:54:37 -05:00
Chris Jones
d995a3e75a simplify some *Channel code. enforce more SyncChannel invariants 2009-08-19 10:44:56 -05:00
Chris Jones
f54228bce7 add race detection to RPC channels. simplify message processing, be stricter about layering guarantees. add more comments and assertions to channel code. 2009-08-19 00:22:01 -05:00
Chris Jones
3cedbd30e0 stop flirting with MSVC8 name resolution bug. 2009-07-20 11:37:18 -05:00
Chris Jones
e2b846d4e2 >--> @ MSVC8, v4 2009-07-15 17:33:37 -05:00
Chris Jones
b07c80fdf3 another stab at fixing MSVC8 build bustage. 2009-07-15 17:06:30 -05:00