Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(176)

Issue 869883003: Never lock the Pepper proxy lock on the IO thread (Closed)

Created:
5 years, 11 months ago by dmichael (off chromium)
Modified:
5 years, 8 months ago
Reviewers:
raymes, piman
CC:
chromium-reviews, bbudge
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

Don't lock ProxyLock on the IO thread Introduce ResourceMessageFilter and UDPSocketFilter to receive messages on the IO thread. This allows us to queue messages up when there's no callback, and dispatch them directly to the appropriate thread when there is a callback pending. (This depends on TrackedCallback being Run()-able without the ProxyLock; see https://codereview.chromium.org/923263003/) BUG=439588 Committed: https://crrev.com/b11ca7b7dac766989002bede109c81a3f8a8bc89 Cr-Commit-Position: refs/heads/master@{#323517}

Patch Set 1 : Compiling again #

Patch Set 2 : rebase #

Patch Set 3 : some pre-review cleanup #

Total comments: 23

Patch Set 4 : squash #

Patch Set 5 : Rebase #

Patch Set 6 : review comments, fix merge #

Patch Set 7 : fix GN build, fix tests #

Total comments: 7

Patch Set 8 : oops, version without the TrackedCallback changes. #

Total comments: 6

Patch Set 9 : Remove obsolete comment and proxy_lock change #

Total comments: 4

Patch Set 10 : review comments #

Patch Set 11 : Improve a comment #

Patch Set 12 : (without callbacks changes) #

Patch Set 13 : rebase #

Patch Set 14 : rebase to origin/master #

Patch Set 15 : fix size_t vs int32_t #

Unified diffs Side-by-side diffs Delta from patch set Stats (+588 lines, -256 lines) Patch
M content/browser/renderer_host/pepper/pepper_udp_socket_message_filter.cc View 1 2 3 4 5 7 chunks +10 lines, -15 lines 0 comments Download
M content/ppapi_plugin/ppapi_thread.cc View 1 2 3 4 5 1 chunk +7 lines, -5 lines 0 comments Download
M ppapi/nacl_irt/plugin_main.cc View 1 2 3 4 5 1 chunk +3 lines, -1 line 0 comments Download
M ppapi/nacl_irt/ppapi_dispatcher.cc View 1 chunk +7 lines, -2 lines 0 comments Download
M ppapi/ppapi_proxy.gypi View 1 2 3 4 5 6 7 8 2 chunks +3 lines, -0 lines 0 comments Download
M ppapi/proxy/BUILD.gn View 1 2 3 4 5 6 7 8 1 chunk +2 lines, -0 lines 0 comments Download
M ppapi/proxy/plugin_globals.h View 1 2 3 4 5 5 chunks +20 lines, -2 lines 0 comments Download
M ppapi/proxy/plugin_globals.cc View 1 2 3 4 5 4 chunks +15 lines, -2 lines 0 comments Download
M ppapi/proxy/plugin_message_filter.h View 4 chunks +7 lines, -0 lines 0 comments Download
M ppapi/proxy/plugin_message_filter.cc View 1 2 3 4 5 2 chunks +11 lines, -8 lines 0 comments Download
M ppapi/proxy/ppapi_proxy_test.h View 1 2 3 4 5 2 chunks +3 lines, -1 line 0 comments Download
M ppapi/proxy/ppapi_proxy_test.cc View 1 2 3 4 5 3 chunks +8 lines, -5 lines 0 comments Download
A ppapi/proxy/resource_message_filter.h View 1 2 3 4 5 6 1 chunk +51 lines, -0 lines 0 comments Download
M ppapi/proxy/resource_reply_thread_registrar.h View 2 chunks +0 lines, -8 lines 0 comments Download
M ppapi/proxy/resource_reply_thread_registrar.cc View 2 chunks +0 lines, -8 lines 0 comments Download
M ppapi/proxy/tracked_callback_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 4 chunks +11 lines, -11 lines 0 comments Download
A ppapi/proxy/udp_socket_filter.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +137 lines, -0 lines 0 comments Download
A ppapi/proxy/udp_socket_filter.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 1 chunk +245 lines, -0 lines 0 comments Download
M ppapi/proxy/udp_socket_resource_base.h View 1 2 3 4 5 6 5 chunks +6 lines, -36 lines 0 comments Download
M ppapi/proxy/udp_socket_resource_base.cc View 1 2 3 4 5 6 7 8 9 7 chunks +41 lines, -150 lines 0 comments Download
M ppapi/shared_impl/callback_tracker.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 1 chunk +1 line, -2 lines 0 comments Download

Messages

Total messages: 54 (25 generated)
dmichael (off chromium)
Yuzhu, do you have time or desire to look at this? If not, I can ...
5 years, 9 months ago (2015-02-27 23:53:25 UTC) #15
yzshen1
Hi, David. I am going to take a three-week leave starting from next Monday. (My ...
5 years, 9 months ago (2015-02-27 23:59:12 UTC) #16
dmichael (off chromium)
raymes@, do you have time for this review? Kind of a thorny one. bbudge is ...
5 years, 9 months ago (2015-03-02 21:10:59 UTC) #18
raymes
Hey Dave! I started to look at this. Not sure if I'm the best person ...
5 years, 9 months ago (2015-03-03 03:07:44 UTC) #19
dmichael (off chromium)
Thanks, Raymes! I know Bill spent some time learning about the issues I'm trying to ...
5 years, 9 months ago (2015-03-03 18:27:57 UTC) #20
raymes
Hey David, thanks for the reply! Sorry I'm really slow on this. I'm starting to ...
5 years, 9 months ago (2015-03-09 07:43:01 UTC) #21
raymes
Hey David - a more general question about the approach. What if we immediately posted ...
5 years, 9 months ago (2015-03-10 02:53:15 UTC) #22
dmichael (off chromium)
On 2015/03/10 02:53:15, raymes wrote: > Hey David - a more general question about the ...
5 years, 9 months ago (2015-03-20 23:06:07 UTC) #23
raymes
On 2015/03/20 23:06:07, dmichael wrote: > On 2015/03/10 02:53:15, raymes wrote: > > Hey David ...
5 years, 9 months ago (2015-03-22 23:55:58 UTC) #24
dmichael (off chromium)
On 2015/03/22 23:55:58, raymes wrote: > On 2015/03/20 23:06:07, dmichael wrote: > > On 2015/03/10 ...
5 years, 9 months ago (2015-03-23 17:58:14 UTC) #25
dmichael (off chromium)
I think I addressed your comments in the latest patch set. Thanks! https://codereview.chromium.org/869883003/diff/300001/ppapi/proxy/udp_socket_filter.cc File ppapi/proxy/udp_socket_filter.cc ...
5 years, 9 months ago (2015-03-23 20:50:06 UTC) #26
raymes
Hey David, Thanks - it looks like this is just a hard thing to do. ...
5 years, 9 months ago (2015-03-24 04:29:10 UTC) #27
dmichael (off chromium)
On 2015/03/24 04:29:10, raymes wrote: > Hey David, > > Thanks - it looks like ...
5 years, 9 months ago (2015-03-24 15:17:34 UTC) #28
dmichael (off chromium)
I had a couple of mistakes, so there's a new patch up. Thanks again for ...
5 years, 9 months ago (2015-03-24 20:10:27 UTC) #29
raymes
Hey David! I still don't feel great about the design here which has made me ...
5 years, 9 months ago (2015-03-25 01:33:28 UTC) #30
raymes
https://codereview.chromium.org/869883003/diff/380001/ppapi/shared_impl/proxy_lock.h File ppapi/shared_impl/proxy_lock.h (left): https://codereview.chromium.org/869883003/diff/380001/ppapi/shared_impl/proxy_lock.h#oldcode180 ppapi/shared_impl/proxy_lock.h:180: ProxyLock::AssertAcquired(); Is the name a bit misleading now then? ...
5 years, 9 months ago (2015-03-25 01:43:59 UTC) #31
dmichael (off chromium)
On 2015/03/25 01:33:28, raymes wrote: > Hey David! > > I still don't feel great ...
5 years, 9 months ago (2015-03-25 17:27:04 UTC) #32
dmichael (off chromium)
https://codereview.chromium.org/869883003/diff/380001/ppapi/shared_impl/proxy_lock.h File ppapi/shared_impl/proxy_lock.h (left): https://codereview.chromium.org/869883003/diff/380001/ppapi/shared_impl/proxy_lock.h#oldcode180 ppapi/shared_impl/proxy_lock.h:180: ProxyLock::AssertAcquired(); On 2015/03/25 01:43:59, raymes wrote: > Is the ...
5 years, 9 months ago (2015-03-25 17:35:04 UTC) #37
raymes
On 2015/03/25 17:27:04, dmichael wrote: > On 2015/03/25 01:33:28, raymes wrote: > > Hey David! ...
5 years, 9 months ago (2015-03-26 05:36:31 UTC) #38
raymes
lgtm Thanks! https://codereview.chromium.org/869883003/diff/380001/ppapi/proxy/udp_socket_resource_base.cc File ppapi/proxy/udp_socket_resource_base.cc (right): https://codereview.chromium.org/869883003/diff/380001/ppapi/proxy/udp_socket_resource_base.cc#newcode308 ppapi/proxy/udp_socket_resource_base.cc:308: // send the message. Do you still ...
5 years, 9 months ago (2015-03-26 06:30:52 UTC) #39
dmichael (off chromium)
On 2015/03/26 05:36:31, raymes wrote: > On 2015/03/25 17:27:04, dmichael wrote: > > On 2015/03/25 ...
5 years, 8 months ago (2015-03-26 18:15:44 UTC) #40
dmichael (off chromium)
Thanks, Raymes! Now I just need to go pick on Bill to finish the review ...
5 years, 8 months ago (2015-03-26 18:19:43 UTC) #41
dmichael (off chromium)
+piman for ppapi_thread.cc
5 years, 8 months ago (2015-03-31 19:40:32 UTC) #43
piman
lgtm
5 years, 8 months ago (2015-03-31 19:44:27 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/869883003/600001
5 years, 8 months ago (2015-04-01 21:44:57 UTC) #47
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_x64_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/42747)
5 years, 8 months ago (2015-04-01 23:29:34 UTC) #49
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/869883003/620001
5 years, 8 months ago (2015-04-02 15:43:30 UTC) #52
commit-bot: I haz the power
Committed patchset #15 (id:620001)
5 years, 8 months ago (2015-04-02 16:59:49 UTC) #53
commit-bot: I haz the power
5 years, 8 months ago (2015-04-03 20:26:53 UTC) #54
Message was sent while issue was closed.
Patchset 15 (id:??) landed as
https://crrev.com/b11ca7b7dac766989002bede109c81a3f8a8bc89
Cr-Commit-Position: refs/heads/master@{#323517}

Powered by Google App Engine
This is Rietveld 408576698