1// Copyright 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "mojo/shell/task_runners.h" 6 7#include "base/threading/sequenced_worker_pool.h" 8 9namespace mojo { 10namespace shell { 11 12namespace { 13 14const size_t kMaxBlockingPoolThreads = 3; 15 16scoped_ptr<base::Thread> CreateIOThread(const char* name) { 17 scoped_ptr<base::Thread> thread(new base::Thread(name)); 18 base::Thread::Options options; 19 options.message_loop_type = base::MessageLoop::TYPE_IO; 20 thread->StartWithOptions(options); 21 return thread.Pass(); 22} 23 24} // namespace 25 26TaskRunners::TaskRunners( 27 const scoped_refptr<base::SingleThreadTaskRunner>& shell_runner) 28 : shell_runner_(shell_runner), 29 io_thread_(CreateIOThread("io_thread")), 30 blocking_pool_(new base::SequencedWorkerPool(kMaxBlockingPoolThreads, 31 "blocking_pool")) { 32} 33 34TaskRunners::~TaskRunners() { 35 blocking_pool_->Shutdown(); 36} 37 38} // namespace shell 39} // namespace mojo 40