Bug 50375 - nrwt multiprocessing - actually implement messaging
Summary: nrwt multiprocessing - actually implement messaging
Status: RESOLVED WONTFIX
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: 528+ (Nightly build)
Hardware: Other OS X 10.5
: P2 Normal
Assignee: Dirk Pranke
URL:
Keywords:
Depends on: 50557
Blocks: 50381
  Show dependency treegraph
 
Reported: 2010-12-02 00:15 PST by Dirk Pranke
Modified: 2010-12-14 20:51 PST (History)
3 users (show)

See Also:


Attachments
Patch (43.01 KB, patch)
2010-12-02 02:39 PST, Dirk Pranke
no flags Details | Formatted Diff | Diff
update to tip of tree (42.55 KB, patch)
2010-12-02 20:10 PST, Dirk Pranke
no flags Details | Formatted Diff | Diff
Patch (29.22 KB, patch)
2010-12-06 04:27 PST, Dirk Pranke
no flags Details | Formatted Diff | Diff
Patch (32.86 KB, patch)
2010-12-06 05:32 PST, Dirk Pranke
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Dirk Pranke 2010-12-02 00:15:33 PST
nrwt multiprocessing - actually implement messaging
Comment 1 Dirk Pranke 2010-12-02 02:39:13 PST
Created attachment 75361 [details]
Patch
Comment 2 Dirk Pranke 2010-12-02 20:10:42 PST
Created attachment 75457 [details]
update to tip of tree
Comment 3 Dirk Pranke 2010-12-06 04:27:34 PST
Created attachment 75672 [details]
Patch
Comment 4 Dirk Pranke 2010-12-06 04:33:24 PST
Okay, I have attempted to simplify this patch by splitting it in to. The first half has moved into bug 50557, and contains the new implementation of the message_broker (message_broker2) as a standalone module.

This patch now just contains the changed need to run_webkit_tests.py and dump_render_tree_thread.py to call the new module. The main aspect of these changes, apart from the actual switch to posting messages, is that the code no longer synchronously does cross-class access from run_webkit_tests to dump_render_tree_thread and vice versa; all access is mediated as:

TestRunner <-> ManagerConnection <-> WorkerMessageBroker <-> *WorkerConnection <-> dump_render_tree_thread.Worker

In some ways it is unfortunate that there are three objects for this, but there need to be at least two to avoid using multiple inheritance in between *WorkerConnection and Worker, and creating ManagerConnection allows us to have a nice symmetry and very clean APIs.

message_broker.py is still in the tree as of this patch, but it can be removed (I'm planning to do so in a later patch once everything subsides, but I can add the deletion to this patch if that makes anything easier).
Comment 5 Dirk Pranke 2010-12-06 05:32:52 PST
Created attachment 75681 [details]
Patch
Comment 6 Dirk Pranke 2010-12-14 20:51:26 PST
marking as WONTFIX. Will split up the patches differently.