Commit a23ee26f authored by vmpstr's avatar vmpstr Committed by Commit bot

cc: Change tile manager to have a raw ptr for the task runner.

This patch changes |task_runner_| member in tile manager to be a raw
pointer instead of a scoped_refptr. All the codepaths seem to guarantee
that the task runner outlives tile manager, so there is no need to
create a scoped_refptr a raw pointer at tile manager creation time.

R=ericrk, reveman
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review-Url: https://codereview.chromium.org/2026663005
Cr-Commit-Position: refs/heads/master@{#397241}
parent b81a4b2c
...@@ -27,7 +27,7 @@ base::LazyInstance<FakeTileTaskManagerImpl> g_fake_tile_task_manager = ...@@ -27,7 +27,7 @@ base::LazyInstance<FakeTileTaskManagerImpl> g_fake_tile_task_manager =
FakeTileManager::FakeTileManager(TileManagerClient* client) FakeTileManager::FakeTileManager(TileManagerClient* client)
: TileManager(client, : TileManager(client,
base::ThreadTaskRunnerHandle::Get(), base::ThreadTaskRunnerHandle::Get().get(),
std::numeric_limits<size_t>::max(), std::numeric_limits<size_t>::max(),
false /* use_partial_raster */), false /* use_partial_raster */),
image_decode_controller_( image_decode_controller_(
...@@ -41,7 +41,7 @@ FakeTileManager::FakeTileManager(TileManagerClient* client) ...@@ -41,7 +41,7 @@ FakeTileManager::FakeTileManager(TileManagerClient* client)
FakeTileManager::FakeTileManager(TileManagerClient* client, FakeTileManager::FakeTileManager(TileManagerClient* client,
ResourcePool* resource_pool) ResourcePool* resource_pool)
: TileManager(client, : TileManager(client,
base::ThreadTaskRunnerHandle::Get(), base::ThreadTaskRunnerHandle::Get().get(),
std::numeric_limits<size_t>::max(), std::numeric_limits<size_t>::max(),
false /* use_partial_raster */), false /* use_partial_raster */),
image_decode_controller_( image_decode_controller_(
......
...@@ -282,7 +282,7 @@ class TaskSetFinishedTaskImpl : public TileTask { ...@@ -282,7 +282,7 @@ class TaskSetFinishedTaskImpl : public TileTask {
} }
private: private:
scoped_refptr<base::SequencedTaskRunner> task_runner_; base::SequencedTaskRunner* task_runner_;
const base::Closure on_task_set_finished_callback_; const base::Closure on_task_set_finished_callback_;
DISALLOW_COPY_AND_ASSIGN(TaskSetFinishedTaskImpl); DISALLOW_COPY_AND_ASSIGN(TaskSetFinishedTaskImpl);
...@@ -305,11 +305,11 @@ RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats) { ...@@ -305,11 +305,11 @@ RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats) {
} }
TileManager::TileManager(TileManagerClient* client, TileManager::TileManager(TileManagerClient* client,
scoped_refptr<base::SequencedTaskRunner> task_runner, base::SequencedTaskRunner* task_runner,
size_t scheduled_raster_task_limit, size_t scheduled_raster_task_limit,
bool use_partial_raster) bool use_partial_raster)
: client_(client), : client_(client),
task_runner_(std::move(task_runner)), task_runner_(task_runner),
resource_pool_(nullptr), resource_pool_(nullptr),
tile_task_manager_(nullptr), tile_task_manager_(nullptr),
scheduled_raster_task_limit_(scheduled_raster_task_limit), scheduled_raster_task_limit_(scheduled_raster_task_limit),
...@@ -319,10 +319,10 @@ TileManager::TileManager(TileManagerClient* client, ...@@ -319,10 +319,10 @@ TileManager::TileManager(TileManagerClient* client,
did_check_for_completed_tasks_since_last_schedule_tasks_(true), did_check_for_completed_tasks_since_last_schedule_tasks_(true),
did_oom_on_last_assign_(false), did_oom_on_last_assign_(false),
more_tiles_need_prepare_check_notifier_( more_tiles_need_prepare_check_notifier_(
task_runner_.get(), task_runner_,
base::Bind(&TileManager::CheckIfMoreTilesNeedToBePrepared, base::Bind(&TileManager::CheckIfMoreTilesNeedToBePrepared,
base::Unretained(this))), base::Unretained(this))),
signals_check_notifier_(task_runner_.get(), signals_check_notifier_(task_runner_,
base::Bind(&TileManager::CheckAndIssueSignals, base::Bind(&TileManager::CheckAndIssueSignals,
base::Unretained(this))), base::Unretained(this))),
has_scheduled_tile_tasks_(false), has_scheduled_tile_tasks_(false),
...@@ -1173,7 +1173,7 @@ TileManager::ScheduledTasksStateAsValue() const { ...@@ -1173,7 +1173,7 @@ TileManager::ScheduledTasksStateAsValue() const {
scoped_refptr<TileTask> TileManager::CreateTaskSetFinishedTask( scoped_refptr<TileTask> TileManager::CreateTaskSetFinishedTask(
void (TileManager::*callback)()) { void (TileManager::*callback)()) {
return make_scoped_refptr(new TaskSetFinishedTaskImpl( return make_scoped_refptr(new TaskSetFinishedTaskImpl(
task_runner_.get(), task_runner_,
base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr()))); base::Bind(callback, task_set_finished_weak_ptr_factory_.GetWeakPtr())));
} }
......
...@@ -96,7 +96,7 @@ RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats); ...@@ -96,7 +96,7 @@ RasterTaskCompletionStatsAsValue(const RasterTaskCompletionStats& stats);
class CC_EXPORT TileManager { class CC_EXPORT TileManager {
public: public:
TileManager(TileManagerClient* client, TileManager(TileManagerClient* client,
scoped_refptr<base::SequencedTaskRunner> task_runner, base::SequencedTaskRunner* task_runner,
size_t scheduled_raster_task_limit, size_t scheduled_raster_task_limit,
bool use_partial_raster); bool use_partial_raster);
virtual ~TileManager(); virtual ~TileManager();
...@@ -271,7 +271,7 @@ class CC_EXPORT TileManager { ...@@ -271,7 +271,7 @@ class CC_EXPORT TileManager {
ScheduledTasksStateAsValue() const; ScheduledTasksStateAsValue() const;
TileManagerClient* client_; TileManagerClient* client_;
scoped_refptr<base::SequencedTaskRunner> task_runner_; base::SequencedTaskRunner* task_runner_;
ResourcePool* resource_pool_; ResourcePool* resource_pool_;
TileTaskManager* tile_task_manager_; TileTaskManager* tile_task_manager_;
GlobalStateThatImpactsTilePriority global_state_; GlobalStateThatImpactsTilePriority global_state_;
......
...@@ -218,9 +218,6 @@ LayerTreeHostImpl::LayerTreeHostImpl( ...@@ -218,9 +218,6 @@ LayerTreeHostImpl::LayerTreeHostImpl(
!settings.single_thread_proxy_scheduler), !settings.single_thread_proxy_scheduler),
// Must be initialized after is_synchronous_single_threaded_ and // Must be initialized after is_synchronous_single_threaded_ and
// task_runner_provider_. // task_runner_provider_.
// TODO(vmpstr): TileManager takes a scoped reftr for the task runner,
// figure out if it actually needs a ref or whether it can use a raw
// pointer.
tile_manager_(new TileManager(this, tile_manager_(new TileManager(this,
GetTaskRunner(), GetTaskRunner(),
is_synchronous_single_threaded_ is_synchronous_single_threaded_
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment