|
Add multiplexing of message pipes in the new EDK.
This dramatically cuts down on the number of OS pipes used. The key is that the vast majority (all for now) of message pipes are only read or written in one process. If they're passed to another process, that is before they're interacted with. So by default, create message pipes such that they're not transferable after they're read or written. A non-transferable pipe is then just a unique ID. When two process "bind" their end by reading/writing to that ID, the parent process ensures that the two processes have a channel between them and tells them to connect to each other using it.
"Transferable" message pipes can still be created and these can be sent after they're read or written to, by specifying MOJO_CREATE_MESSAGE_PIPE_OPTIONS_FLAG_TRANSFERABLE.
BUG= 556259
R=tsepez@chromium.org, yzshen@chromium.org
Committed: https://chromium.googlesource.com/chromium/src/+/44929cdb67189f2715c90b1a17bc29ccc2276991
Total comments: 23
Total comments: 4
Total comments: 11
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+1472 lines, -391 lines) |
Patch |
 |
M |
components/web_view/frame.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
1 chunk |
+2 lines, -2 lines |
0 comments
|
Download
|
 |
M |
content/browser/browser_child_process_host_impl.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+0 lines, -3 lines |
0 comments
|
Download
|
 |
M |
content/browser/renderer_host/render_process_host_impl.cc
|
View
|
1
2
3
4
5
6
7
|
2 chunks |
+0 lines, -3 lines |
0 comments
|
Download
|
 |
M |
content/child/child_thread_impl.h
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
content/child/child_thread_impl.cc
|
View
|
1
2
3
4
5
|
2 chunks |
+1 line, -2 lines |
0 comments
|
Download
|
 |
M |
content/renderer/DEPS
|
View
|
1
2
3
4
5
6
|
1 chunk |
+3 lines, -0 lines |
0 comments
|
Download
|
 |
M |
content/renderer/render_thread_impl_browsertest.cc
|
View
|
1
2
3
4
5
6
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
 |
M |
mojo/edk/embedder/embedder.cc
|
View
|
1
2
3
4
5
6
7
|
2 chunks |
+4 lines, -8 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/embedder/embedder_unittest.cc
|
View
|
1
2
3
4
5
6
|
4 chunks |
+95 lines, -102 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/BUILD.gn
|
View
|
1
2
3
4
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/broker.h
|
View
|
1
2
3
4
5
6
7
8
|
2 chunks |
+22 lines, -5 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/broker_messages.h
|
View
|
1
2
3
4
5
6
7
8
|
3 chunks |
+41 lines, -5 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/broker_state.h
|
View
|
1
2
3
4
5
6
7
8
|
4 chunks |
+62 lines, -11 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/broker_state.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
5 chunks |
+199 lines, -5 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/child_broker.h
|
View
|
1
2
3
4
5
6
7
8
|
3 chunks |
+66 lines, -3 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/child_broker.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
7 chunks |
+191 lines, -21 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/child_broker_host.h
|
View
|
1
2
3
4
5
6
7
8
|
3 chunks |
+38 lines, -11 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/child_broker_host.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
4 chunks |
+139 lines, -25 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/core.cc
|
View
|
1
2
3
4
|
2 chunks |
+20 lines, -9 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/core_test_base.h
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
mojo/edk/system/core_unittest.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+4 lines, -1 line |
0 comments
|
Download
|
 |
M |
mojo/edk/system/data_pipe_unittest.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
mojo/edk/system/dispatcher.h
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/message_in_transit.h
|
View
|
1
2
3
4
|
3 chunks |
+6 lines, -1 line |
0 comments
|
Download
|
 |
M |
mojo/edk/system/message_in_transit.cc
|
View
|
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/message_pipe_dispatcher.h
|
View
|
1
2
3
4
5
6
7
8
9
10
|
8 chunks |
+57 lines, -10 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/message_pipe_dispatcher.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
23 chunks |
+186 lines, -43 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/message_pipe_perftest.cc
|
View
|
1
2
3
4
5
6
|
2 chunks |
+1 line, -7 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/message_pipe_test_utils.h
|
View
|
1
2
3
4
5
6
|
2 chunks |
+0 lines, -12 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/message_pipe_test_utils.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -10 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/message_pipe_unittest.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
mojo/edk/system/multiprocess_message_pipe_unittest.cc
|
View
|
1
2
3
4
5
6
7
|
6 chunks |
+1 line, -27 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/raw_channel_unittest.cc
|
View
|
1
2
3
4
5
6
|
16 chunks |
+30 lines, -18 lines |
0 comments
|
Download
|
 |
A |
mojo/edk/system/routed_raw_channel.h
|
View
|
1
2
3
4
5
|
1 chunk |
+78 lines, -0 lines |
0 comments
|
Download
|
 |
A |
mojo/edk/system/routed_raw_channel.cc
|
View
|
1
2
3
4
5
6
7
8
9
10
|
1 chunk |
+168 lines, -0 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/run_all_unittests.cc
|
View
|
1
2
3
4
5
6
7
|
2 chunks |
+8 lines, -0 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/test_utils.h
|
View
|
1
2
3
4
5
6
|
2 chunks |
+0 lines, -19 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/system/test_utils.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+0 lines, -9 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/test/BUILD.gn
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/test/multiprocess_test_helper_unittest.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
mojo/edk/test/run_all_perftests.cc
|
View
|
1
2
3
4
5
6
|
1 chunk |
+18 lines, -3 lines |
0 comments
|
Download
|
 |
M |
mojo/mojo_edk.gyp
|
View
|
1
2
3
4
|
1 chunk |
+2 lines, -0 lines |
0 comments
|
Download
|
 |
M |
mojo/public/c/system/message_pipe.h
|
View
|
1
2
3
4
5
6
7
8
|
1 chunk |
+10 lines, -1 line |
0 comments
|
Download
|
 |
M |
mojo/runner/host/child_process.cc
|
View
|
1
2
3
4
5
6
7
|
4 chunks |
+3 lines, -4 lines |
0 comments
|
Download
|
 |
M |
mojo/runner/host/child_process_host.cc
|
View
|
1
2
3
4
5
|
5 chunks |
+0 lines, -7 lines |
0 comments
|
Download
|
 |
M |
third_party/mojo/src/mojo/edk/embedder/embedder.cc
|
View
|
1
2
3
4
5
6
7
8
9
|
2 chunks |
+3 lines, -0 lines |
0 comments
|
Download
|
Total messages: 31 (13 generated)
|