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

Issue 1317743002: cc: Implement shared worker contexts. (v1) (Closed)

Created:
5 years, 3 months ago by reveman
Modified:
5 years, 3 months ago
CC:
cc-bugs_chromium.org, chromium-reviews, danakj+watch_chromium.org, darin-cc_chromium.org, jam, jbauman+watch_chromium.org, kalyank, mkwst+moarreviews-renderer_chromium.org, mlamouri+watch-content_chromium.org, piman+watch_chromium.org, sievers+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

cc: Implement shared worker contexts. This moves the responsibility to call BindToCurrentThread/SetupLock out of cc::OutputSurface and to the maintainer of the (possibly) shared context. Worker contexts are now destroyed on the thread they are bound to. The context provider lock needs to be acquired to safely use a worker context on any thread, including the thread that the context is bound to. To safely use a worker context on a different thread it's also required to check if the context has been destroyed. BUG=523411 CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Patch Set 1 #

Patch Set 2 : fix tests #

Patch Set 3 : DetachFromThread after SetupLock #

Total comments: 12

Patch Set 4 : fix more tests and address feedback #

Total comments: 5

Patch Set 5 : webview fix #

Patch Set 6 : make sure context3d is destroyed on the same thread it's initialized #

Patch Set 7 : avoid post task if possible #

Patch Set 8 : add missing context3d_task_runner_ check #

Total comments: 7

Patch Set 9 : remove .get() #

Patch Set 10 : invalidate weak ptrs when detaching context from thread #

Total comments: 1

Patch Set 11 : add shared worker contexts #

Patch Set 12 : add aw comments #

Total comments: 3

Patch Set 13 : surfaces_context_provider fix #

Total comments: 7

Patch Set 14 : fix typo #

Patch Set 15 : dtor fix #

Patch Set 16 : fix mojo and verify ::Destroy() usage #

Patch Set 17 : lost+destroyed #

Patch Set 18 : rebase #

Patch Set 19 : fix tear down #

Unified diffs Side-by-side diffs Delta from patch set Stats (+451 lines, -251 lines) Patch
M android_webview/browser/aw_render_thread_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +3 lines, -2 lines 0 comments Download
M android_webview/browser/aw_render_thread_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +10 lines, -5 lines 0 comments Download
M blimp/client/compositor/blimp_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +4 lines, -3 lines 0 comments Download
M blimp/client/compositor/blimp_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +13 lines, -9 lines 0 comments Download
M cc/output/context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 5 chunks +19 lines, -8 lines 0 comments Download
M cc/output/output_surface.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +8 lines, -12 lines 0 comments Download
M cc/raster/gpu_tile_task_worker_pool.cc View 1 2 3 4 5 6 7 8 9 10 2 chunks +5 lines, -1 line 0 comments Download
M cc/raster/one_copy_tile_task_worker_pool.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 4 chunks +108 lines, -104 lines 0 comments Download
M cc/raster/tile_task_worker_pool_perftest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -1 line 0 comments Download
M cc/raster/tile_task_worker_pool_unittest.cc View 1 2 3 4 5 6 7 8 9 1 chunk +3 lines, -2 lines 0 comments Download
M cc/test/fake_output_surface.h View 1 3 chunks +10 lines, -8 lines 0 comments Download
M cc/test/test_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +7 lines, -3 lines 0 comments Download
M cc/test/test_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 6 chunks +30 lines, -14 lines 0 comments Download
M cc/test/test_in_process_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -1 line 0 comments Download
M cc/test/test_in_process_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +7 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +3 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_impl_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +2 lines, -1 line 0 comments Download
M cc/trees/layer_tree_host_unittest.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +1 line, -1 line 0 comments Download
M components/view_manager/surfaces/surfaces_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +2 lines, -1 line 0 comments Download
M components/view_manager/surfaces/surfaces_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +5 lines, -1 line 0 comments Download
M content/browser/android/in_process/context_provider_in_process.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +4 lines, -3 lines 0 comments Download
M content/browser/android/in_process/context_provider_in_process.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +12 lines, -11 lines 0 comments Download
M content/browser/android/in_process/synchronous_compositor_factory_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +3 lines, -0 lines 0 comments Download
M content/browser/android/in_process/synchronous_compositor_factory_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 3 chunks +34 lines, -3 lines 0 comments Download
M content/browser/compositor/gpu_process_transport_factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 2 chunks +5 lines, -1 line 0 comments Download
M content/common/gpu/client/command_buffer_proxy_impl.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1 chunk +2 lines, -0 lines 0 comments Download
M content/common/gpu/client/context_provider_command_buffer.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +10 lines, -2 lines 0 comments Download
M content/common/gpu/client/context_provider_command_buffer.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 7 chunks +32 lines, -15 lines 0 comments Download
M content/renderer/render_thread_impl.h View 1 2 3 4 5 6 7 8 9 10 2 chunks +4 lines, -0 lines 0 comments Download
M content/renderer/render_thread_impl.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 4 chunks +27 lines, -2 lines 0 comments Download
M content/renderer/render_widget.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 1 chunk +3 lines, -4 lines 0 comments Download
M mojo/cc/context_provider_mojo.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +2 lines, -1 line 0 comments Download
M mojo/cc/context_provider_mojo.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1 chunk +7 lines, -1 line 0 comments Download
M ui/compositor/test/in_process_context_factory.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 2 chunks +3 lines, -1 line 0 comments Download
M ui/compositor/test/in_process_context_factory.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +25 lines, -8 lines 0 comments Download
M ui/compositor/test/in_process_context_provider.h View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 3 chunks +15 lines, -11 lines 0 comments Download
M ui/compositor/test/in_process_context_provider.cc View 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 4 chunks +19 lines, -9 lines 0 comments Download

Messages

Total messages: 98 (28 generated)
danakj
That LGTM
5 years, 3 months ago (2015-08-25 23:06:21 UTC) #2
danakj
Will you need to do this in any of the cc pixel test harness code ...
5 years, 3 months ago (2015-08-25 23:07:19 UTC) #3
reveman
On 2015/08/25 at 23:07:19, danakj wrote: > Will you need to do this in any ...
5 years, 3 months ago (2015-08-26 01:24:24 UTC) #4
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/20001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/20001
5 years, 3 months ago (2015-08-26 01:24:35 UTC) #6
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/54859)
5 years, 3 months ago (2015-08-26 01:48:34 UTC) #8
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/40001
5 years, 3 months ago (2015-08-26 15:16:00 UTC) #10
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_gn_rel on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_gn_rel/builds/126356) win_chromium_rel_ng on ...
5 years, 3 months ago (2015-08-26 15:35:36 UTC) #12
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/40001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/40001
5 years, 3 months ago (2015-08-26 18:34:59 UTC) #14
danakj
https://codereview.chromium.org/1317743002/diff/40001/cc/raster/tile_task_worker_pool_unittest.cc File cc/raster/tile_task_worker_pool_unittest.cc (right): https://codereview.chromium.org/1317743002/diff/40001/cc/raster/tile_task_worker_pool_unittest.cc#newcode145 cc/raster/tile_task_worker_pool_unittest.cc:145: base::ThreadTaskRunnerHandle::Get() Did git cl format do this? If so ...
5 years, 3 months ago (2015-08-26 18:48:50 UTC) #15
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_rel_ng/builds/103963)
5 years, 3 months ago (2015-08-26 19:07:29 UTC) #17
jbauman
https://codereview.chromium.org/1317743002/diff/40001/content/renderer/render_widget.cc File content/renderer/render_widget.cc (right): https://codereview.chromium.org/1317743002/diff/40001/content/renderer/render_widget.cc#newcode1026 content/renderer/render_widget.cc:1026: !worker_context_provider->BindToCurrentThread()) { I think we want this to happen ...
5 years, 3 months ago (2015-08-26 20:59:25 UTC) #19
reveman
This is still WIP as I'm not sure it passes all tests yet but feel ...
5 years, 3 months ago (2015-08-26 22:02:11 UTC) #20
jbauman
On 2015/08/26 22:02:11, reveman wrote: > > https://codereview.chromium.org/1317743002/diff/40001/content/renderer/render_widget.cc > File content/renderer/render_widget.cc (right): > > https://codereview.chromium.org/1317743002/diff/40001/content/renderer/render_widget.cc#newcode1026 ...
5 years, 3 months ago (2015-08-26 22:33:02 UTC) #21
reveman
On 2015/08/26 at 22:33:02, jbauman wrote: > On 2015/08/26 22:02:11, reveman wrote: > > > ...
5 years, 3 months ago (2015-08-26 22:49:40 UTC) #22
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/60001
5 years, 3 months ago (2015-08-27 17:28:32 UTC) #24
danakj
https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h File cc/test/test_context_provider.h (right): https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h#newcode28 cc/test/test_context_provider.h:28: // Creates a worker context provider that doesn't need ...
5 years, 3 months ago (2015-08-27 18:24:01 UTC) #25
reveman
https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h File cc/test/test_context_provider.h (right): https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h#newcode28 cc/test/test_context_provider.h:28: // Creates a worker context provider that doesn't need ...
5 years, 3 months ago (2015-08-27 18:58:53 UTC) #26
danakj
https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h File cc/test/test_context_provider.h (right): https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h#newcode28 cc/test/test_context_provider.h:28: // Creates a worker context provider that doesn't need ...
5 years, 3 months ago (2015-08-27 20:16:40 UTC) #27
reveman
https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h File cc/test/test_context_provider.h (right): https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h#newcode28 cc/test/test_context_provider.h:28: // Creates a worker context provider that doesn't need ...
5 years, 3 months ago (2015-08-27 20:33:07 UTC) #28
danakj
On 2015/08/27 20:33:07, reveman wrote: > https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h > File cc/test/test_context_provider.h (right): > > https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h#newcode28 > ...
5 years, 3 months ago (2015-08-27 20:37:05 UTC) #29
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_android_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_android_rel_ng/builds/61603)
5 years, 3 months ago (2015-08-27 20:56:09 UTC) #31
reveman
On 2015/08/27 at 20:37:05, danakj wrote: > On 2015/08/27 20:33:07, reveman wrote: > > https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h ...
5 years, 3 months ago (2015-08-27 21:04:20 UTC) #32
danakj
https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h File cc/test/test_context_provider.h (right): https://codereview.chromium.org/1317743002/diff/60001/cc/test/test_context_provider.h#newcode28 cc/test/test_context_provider.h:28: // Creates a worker context provider that doesn't need ...
5 years, 3 months ago (2015-08-27 21:06:40 UTC) #33
reveman
jbauman, does this change make sense in general and does latest patch look ok? +avi ...
5 years, 3 months ago (2015-08-27 21:10:15 UTC) #35
Avi (use Gerrit)
content lgtm
5 years, 3 months ago (2015-08-27 21:20:40 UTC) #36
jbauman
lgtm, I guess this works.
5 years, 3 months ago (2015-08-27 22:26:41 UTC) #37
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/60001
5 years, 3 months ago (2015-08-27 22:55:51 UTC) #39
commit-bot: I haz the power
Try jobs failed on following builders: linux_android_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_android_rel_ng/builds/61809)
5 years, 3 months ago (2015-08-28 02:32:55 UTC) #41
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/60001
5 years, 3 months ago (2015-09-01 16:05:46 UTC) #43
reveman
5 years, 3 months ago (2015-09-01 18:40:47 UTC) #44
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/80001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/80001
5 years, 3 months ago (2015-09-01 18:41:21 UTC) #47
commit-bot: I haz the power
Committed patchset #5 (id:80001)
5 years, 3 months ago (2015-09-01 19:48:32 UTC) #48
commit-bot: I haz the power
Patchset 5 (id:??) landed as https://crrev.com/10b73d7c140bc67ddeeaf716eb31df0977fe2497 Cr-Commit-Position: refs/heads/master@{#346712}
5 years, 3 months ago (2015-09-01 19:49:07 UTC) #49
jbauman
A revert of this CL (patchset #5 id:80001) has been created in https://codereview.chromium.org/1317533003/ by jbauman@chromium.org. ...
5 years, 3 months ago (2015-09-01 21:19:07 UTC) #50
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/120001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/120001
5 years, 3 months ago (2015-09-02 04:17:56 UTC) #52
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_chromeos_ozone_rel_ng on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_chromeos_ozone_rel_ng/builds/58045)
5 years, 3 months ago (2015-09-02 04:43:57 UTC) #54
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/140001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/140001
5 years, 3 months ago (2015-09-02 16:39:20 UTC) #56
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 3 months ago (2015-09-02 17:55:31 UTC) #58
reveman
I think the latest patch should fix the issue that caused this to be reverted. ...
5 years, 3 months ago (2015-09-02 18:11:26 UTC) #60
danakj
https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc File content/common/gpu/client/context_provider_command_buffer.cc (right): https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc#newcode82 content/common/gpu/client/context_provider_command_buffer.cc:82: if (context3d_task_runner_.get() && base::ThreadTaskRunnerHandle::IsSet() && you don't need .get() ...
5 years, 3 months ago (2015-09-02 18:19:28 UTC) #61
piman
https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc File content/common/gpu/client/context_provider_command_buffer.cc (right): https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc#newcode85 content/common/gpu/client/context_provider_command_buffer.cc:85: FROM_HERE, base::Bind(&DestroyContext3d, base::Passed(&context3d_))); The potential issue is that it ...
5 years, 3 months ago (2015-09-02 18:26:08 UTC) #62
danakj
On Wed, Sep 2, 2015 at 11:26 AM, <piman@chromium.org> wrote: > > > https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc > ...
5 years, 3 months ago (2015-09-02 18:32:28 UTC) #63
reveman
https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc File content/common/gpu/client/context_provider_command_buffer.cc (right): https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc#newcode82 content/common/gpu/client/context_provider_command_buffer.cc:82: if (context3d_task_runner_.get() && base::ThreadTaskRunnerHandle::IsSet() && On 2015/09/02 at 18:19:28, ...
5 years, 3 months ago (2015-09-02 18:53:09 UTC) #64
danakj
https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc File content/common/gpu/client/context_provider_command_buffer.cc (right): https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc#newcode83 content/common/gpu/client/context_provider_command_buffer.cc:83: base::ThreadTaskRunnerHandle::Get() != context3d_task_runner_.get()) { On 2015/09/02 18:53:08, reveman wrote: ...
5 years, 3 months ago (2015-09-02 21:15:36 UTC) #65
reveman
https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc File content/common/gpu/client/context_provider_command_buffer.cc (right): https://codereview.chromium.org/1317743002/diff/140001/content/common/gpu/client/context_provider_command_buffer.cc#newcode83 content/common/gpu/client/context_provider_command_buffer.cc:83: base::ThreadTaskRunnerHandle::Get() != context3d_task_runner_.get()) { On 2015/09/02 at 21:15:36, danakj ...
5 years, 3 months ago (2015-09-02 21:32:35 UTC) #66
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/180001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/180001
5 years, 3 months ago (2015-09-03 02:10:20 UTC) #68
reveman
I looked at removing ref counting from ContextProvider. Turned out to be a huge undertaking ...
5 years, 3 months ago (2015-09-03 02:21:27 UTC) #69
commit-bot: I haz the power
Dry run: This issue passed the CQ dry run.
5 years, 3 months ago (2015-09-03 03:39:15 UTC) #71
danakj
I don't know enough to understand what kind of bad effects that might have or ...
5 years, 3 months ago (2015-09-03 18:09:58 UTC) #72
piman
On Wed, Sep 2, 2015 at 7:21 PM, <reveman@chromium.org> wrote: > I looked at removing ...
5 years, 3 months ago (2015-09-03 18:20:22 UTC) #73
danakj
On Thu, Sep 3, 2015 at 11:20 AM, Antoine Labour <piman@chromium.org> wrote: > > > ...
5 years, 3 months ago (2015-09-03 18:24:39 UTC) #74
piman
On Thu, Sep 3, 2015 at 11:23 AM, Dana Jansens <danakj@chromium.org> wrote: > On Thu, ...
5 years, 3 months ago (2015-09-03 18:38:00 UTC) #75
reveman
On 2015/09/03 at 18:38:00, piman wrote: > On Thu, Sep 3, 2015 at 11:23 AM, ...
5 years, 3 months ago (2015-09-03 21:34:33 UTC) #76
jbauman
On 2015/09/03 21:34:33, reveman wrote: > On 2015/09/03 at 18:38:00, piman wrote: > > On ...
5 years, 3 months ago (2015-09-03 22:17:57 UTC) #77
danakj
Thanks for thinking so hard about this David. #2 sounds like a good improvement if ...
5 years, 3 months ago (2015-09-03 22:31:17 UTC) #78
piman
On Thu, Sep 3, 2015 at 3:25 PM, Dana Jansens <danakj@chromium.org> wrote: > Thanks for ...
5 years, 3 months ago (2015-09-03 23:41:56 UTC) #79
reveman
+boliu for android_webview/ and related code Latest patch implements alternative #2. Doing that also meant ...
5 years, 3 months ago (2015-09-04 18:13:13 UTC) #81
danakj
https://codereview.chromium.org/1317743002/diff/220001/cc/output/context_provider.h File cc/output/context_provider.h (right): https://codereview.chromium.org/1317743002/diff/220001/cc/output/context_provider.h#newcode114 cc/output/context_provider.h:114: // Return true if the context inside the provider ...
5 years, 3 months ago (2015-09-04 18:28:07 UTC) #82
reveman
https://codereview.chromium.org/1317743002/diff/220001/cc/output/context_provider.h File cc/output/context_provider.h (right): https://codereview.chromium.org/1317743002/diff/220001/cc/output/context_provider.h#newcode114 cc/output/context_provider.h:114: // Return true if the context inside the provider ...
5 years, 3 months ago (2015-09-04 18:55:50 UTC) #83
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/280001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/280001
5 years, 3 months ago (2015-09-04 19:59:59 UTC) #85
danakj
https://codereview.chromium.org/1317743002/diff/220001/cc/output/context_provider.h File cc/output/context_provider.h (right): https://codereview.chromium.org/1317743002/diff/220001/cc/output/context_provider.h#newcode114 cc/output/context_provider.h:114: // Return true if the context inside the provider ...
5 years, 3 months ago (2015-09-04 20:02:15 UTC) #86
reveman
On 2015/09/04 at 20:02:15, danakj wrote: > https://codereview.chromium.org/1317743002/diff/220001/cc/output/context_provider.h > File cc/output/context_provider.h (right): > > https://codereview.chromium.org/1317743002/diff/220001/cc/output/context_provider.h#newcode114 ...
5 years, 3 months ago (2015-09-04 20:07:36 UTC) #87
danakj
On 2015/09/04 20:07:36, reveman wrote: > On 2015/09/04 at 20:02:15, danakj wrote: > > > ...
5 years, 3 months ago (2015-09-04 20:17:21 UTC) #88
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_gn_rel on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_gn_rel/builds/130988)
5 years, 3 months ago (2015-09-04 20:28:42 UTC) #90
commit-bot: I haz the power
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1317743002/300001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1317743002/300001
5 years, 3 months ago (2015-09-04 20:45:39 UTC) #92
reveman
On 2015/09/04 at 20:17:21, danakj wrote: > On 2015/09/04 20:07:36, reveman wrote: > > On ...
5 years, 3 months ago (2015-09-04 21:00:02 UTC) #93
commit-bot: I haz the power
Dry run: Try jobs failed on following builders: linux_chromium_gn_rel on tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_gn_rel/builds/131012)
5 years, 3 months ago (2015-09-04 21:16:49 UTC) #95
danakj
On Fri, Sep 4, 2015 at 2:00 PM, <reveman@chromium.org> wrote: > On 2015/09/04 at 20:17:21, ...
5 years, 3 months ago (2015-09-04 21:23:15 UTC) #96
piman
I'm not sure I fully understand the exact locking semantics, especially around destruction. I'm somewhat ...
5 years, 3 months ago (2015-09-04 22:19:13 UTC) #97
reveman
5 years, 3 months ago (2015-09-08 23:21:19 UTC) #98
On 2015/09/04 at 22:19:13, piman wrote:
> I'm not sure I fully understand the exact locking semantics, especially around
destruction.
> 
> I'm somewhat concerned that ripping the shared context under the worker
tasks's feet could cause leaks.
> 
> I wonder if we could instead, on a lost context or compositor destruction,
synchronize with the worker tasks and make sure they don't hold a reference to
the context, and only then release the compositor thread reference. Wouldn't
that solve the threading issues?

Synchronizing with all users of the worker context sounds complicated and a
rather large change that might make it hard to use this worker context in 
media/ where we currently miss support of lost context handling.

While I think the current patch works correctly, after thinking more about this
I'm not very happy with this mechanism of having users of the worker context
check if it's still valid after acquiring the lock. I've created an alternative
patch that is closer to an earlier version of this cl. It instead tries to
destroy the context like we do in lost context situations and leaves it safe to
still use and be deleted it on other threads. It seems to be working Ok but I
might be missing something. I uploaded this new version as a new CL:
https://codereview.chromium.org/1322853005

Powered by Google App Engine
This is Rietveld 408576698