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

Issue 923263003: PPAPI: Make TrackedCallback more threadsafe (Closed)

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

Description

PPAPI: Make TrackedCallback more threadsafe In particular, make it possible to invoke Run() and friends from any thread even without holding the ProxyLock. See: https://codereview.chromium.org/869883003/ for more context. Summary: We need to be able to Run the callback from the IO thread, but we have to never acquire the ProxyLock on the IO thread. (See bug for still more context). BUG=439588 Committed: https://crrev.com/342e88099292432d7b33988a82609ea906f75863 Cr-Commit-Position: refs/heads/master@{#323133}

Patch Set 1 : #

Total comments: 23

Patch Set 2 : rebase #

Total comments: 4

Patch Set 3 : review comments #

Total comments: 2

Patch Set 4 : Rebase #

Total comments: 19

Patch Set 5 : Rebase #

Patch Set 6 : Review comments #

Patch Set 7 : update gn build #

Total comments: 5

Patch Set 8 : review comments, attempt to fix ASAN #

Patch Set 9 : make test pass on ASAN bots? #

Patch Set 10 : merge #

Patch Set 11 : Make RunWhileLocked not AssertAcquired #

Total comments: 1

Patch Set 12 : rebase #

Total comments: 12

Patch Set 13 : review comments #

Total comments: 6

Patch Set 14 : review comments #

Unified diffs Side-by-side diffs Delta from patch set Stats (+521 lines, -650 lines) Patch
M ppapi/BUILD.gn View 1 2 3 4 5 6 7 8 9 10 11 12 2 chunks +1 line, -1 line 0 comments Download
M ppapi/ppapi_tests.gypi View 1 2 3 4 2 chunks +1 line, -1 line 0 comments Download
A + ppapi/proxy/tracked_callback_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 6 chunks +288 lines, -158 lines 0 comments Download
M ppapi/shared_impl/callback_tracker.h View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +36 lines, -24 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 4 chunks +32 lines, -13 lines 0 comments Download
M ppapi/shared_impl/proxy_lock.h View 1 2 3 4 5 6 7 8 9 10 11 12 4 chunks +0 lines, -6 lines 0 comments Download
M ppapi/shared_impl/tracked_callback.h View 1 2 6 chunks +40 lines, -28 lines 0 comments Download
M ppapi/shared_impl/tracked_callback.cc View 1 2 3 4 5 6 7 8 9 10 11 12 7 chunks +123 lines, -78 lines 0 comments Download
D ppapi/shared_impl/tracked_callback_unittest.cc View 1 1 chunk +0 lines, -341 lines 0 comments Download

Messages

Total messages: 20 (4 generated)
dmichael (off chromium)
I think this is ready for at least a first-look. Thanks/sorry
5 years, 10 months ago (2015-02-13 23:48:18 UTC) #3
dmichael (off chromium)
ping?
5 years, 10 months ago (2015-02-23 23:14:44 UTC) #4
bbudge
Bunch of random comments. https://codereview.chromium.org/923263003/diff/20001/ppapi/shared_impl/callback_tracker.cc File ppapi/shared_impl/callback_tracker.cc (right): https://codereview.chromium.org/923263003/diff/20001/ppapi/shared_impl/callback_tracker.cc#newcode47 ppapi/shared_impl/callback_tracker.cc:47: CHECK(resource_id != 0); Why do ...
5 years, 10 months ago (2015-02-25 23:51:32 UTC) #5
dmichael (off chromium)
https://codereview.chromium.org/923263003/diff/20001/ppapi/shared_impl/callback_tracker.cc File ppapi/shared_impl/callback_tracker.cc (right): https://codereview.chromium.org/923263003/diff/20001/ppapi/shared_impl/callback_tracker.cc#newcode47 ppapi/shared_impl/callback_tracker.cc:47: CHECK(resource_id != 0); On 2015/02/25 23:51:31, bbudge wrote: > ...
5 years, 9 months ago (2015-02-27 22:04:41 UTC) #6
bbudge
https://codereview.chromium.org/923263003/diff/20001/ppapi/shared_impl/callback_tracker.cc File ppapi/shared_impl/callback_tracker.cc (right): https://codereview.chromium.org/923263003/diff/20001/ppapi/shared_impl/callback_tracker.cc#newcode47 ppapi/shared_impl/callback_tracker.cc:47: CHECK(resource_id != 0); On 2015/02/27 22:04:40, dmichael wrote: > ...
5 years, 9 months ago (2015-03-05 01:29:35 UTC) #7
dmichael (off chromium)
https://codereview.chromium.org/923263003/diff/80001/ppapi/proxy/tracked_callback_unittest.cc File ppapi/proxy/tracked_callback_unittest.cc (right): https://codereview.chromium.org/923263003/diff/80001/ppapi/proxy/tracked_callback_unittest.cc#newcode33 ppapi/proxy/tracked_callback_unittest.cc:33: CallbackThread(PP_Instance instance) On 2015/03/05 01:29:35, bbudge wrote: > nit: ...
5 years, 9 months ago (2015-03-18 15:51:48 UTC) #8
bbudge
https://codereview.chromium.org/923263003/diff/80001/ppapi/proxy/tracked_callback_unittest.cc File ppapi/proxy/tracked_callback_unittest.cc (right): https://codereview.chromium.org/923263003/diff/80001/ppapi/proxy/tracked_callback_unittest.cc#newcode90 ppapi/proxy/tracked_callback_unittest.cc:90: explicit CallbackRunInfo(base::ThreadChecker* thread_checker) On 2015/03/18 15:51:48, dmichael wrote: > ...
5 years, 9 months ago (2015-03-19 00:21:11 UTC) #9
dmichael (off chromium)
https://codereview.chromium.org/923263003/diff/140001/ppapi/shared_impl/callback_tracker.cc File ppapi/shared_impl/callback_tracker.cc (right): https://codereview.chromium.org/923263003/diff/140001/ppapi/shared_impl/callback_tracker.cc#newcode49 ppapi/shared_impl/callback_tracker.cc:49: CallbackSet callbacks_for_resource; On 2015/03/19 00:21:10, bbudge wrote: > It ...
5 years, 9 months ago (2015-03-19 17:50:59 UTC) #10
dmichael (off chromium)
I made a small simplification that helps in a future CL. https://codereview.chromium.org/923263003/diff/220001/ppapi/shared_impl/proxy_lock.h File ppapi/shared_impl/proxy_lock.h (left): ...
5 years, 9 months ago (2015-03-25 17:15:58 UTC) #11
bbudge
https://codereview.chromium.org/923263003/diff/140001/ppapi/shared_impl/callback_tracker.cc File ppapi/shared_impl/callback_tracker.cc (right): https://codereview.chromium.org/923263003/diff/140001/ppapi/shared_impl/callback_tracker.cc#newcode73 ppapi/shared_impl/callback_tracker.cc:73: // that no callbacks are added while we're aborting ...
5 years, 9 months ago (2015-03-27 23:46:20 UTC) #12
dmichael (off chromium)
Thanks! https://codereview.chromium.org/923263003/diff/240001/ppapi/shared_impl/callback_tracker.cc File ppapi/shared_impl/callback_tracker.cc (right): https://codereview.chromium.org/923263003/diff/240001/ppapi/shared_impl/callback_tracker.cc#newcode45 ppapi/shared_impl/callback_tracker.cc:45: CHECK_NE(resource_id, 0); On 2015/03/27 23:46:20, bbudge wrote: > ...
5 years, 8 months ago (2015-03-31 19:38:05 UTC) #13
bbudge
LGTM Good luck! https://codereview.chromium.org/923263003/diff/260001/ppapi/proxy/tracked_callback_unittest.cc File ppapi/proxy/tracked_callback_unittest.cc (right): https://codereview.chromium.org/923263003/diff/260001/ppapi/proxy/tracked_callback_unittest.cc#newcode118 ppapi/proxy/tracked_callback_unittest.cc:118: void WaitUntilCompleted() { callback_did_run_event_.Wait(); } nit: ...
5 years, 8 months ago (2015-03-31 21:18:47 UTC) #14
dmichael (off chromium)
Thanks again! https://codereview.chromium.org/923263003/diff/260001/ppapi/proxy/tracked_callback_unittest.cc File ppapi/proxy/tracked_callback_unittest.cc (right): https://codereview.chromium.org/923263003/diff/260001/ppapi/proxy/tracked_callback_unittest.cc#newcode118 ppapi/proxy/tracked_callback_unittest.cc:118: void WaitUntilCompleted() { callback_did_run_event_.Wait(); } On 2015/03/31 ...
5 years, 8 months ago (2015-03-31 21:57:27 UTC) #15
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/923263003/280001
5 years, 8 months ago (2015-03-31 21:58:21 UTC) #18
commit-bot: I haz the power
Committed patchset #14 (id:280001)
5 years, 8 months ago (2015-03-31 22:48:51 UTC) #19
commit-bot: I haz the power
5 years, 8 months ago (2015-03-31 22:50:01 UTC) #20
Message was sent while issue was closed.
Patchset 14 (id:??) landed as
https://crrev.com/342e88099292432d7b33988a82609ea906f75863
Cr-Commit-Position: refs/heads/master@{#323133}

Powered by Google App Engine
This is Rietveld 408576698