Home | History | Annotate | Download | only in gpu
      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 "content/gpu/in_process_gpu_thread.h"
      6 
      7 #include "content/gpu/gpu_child_thread.h"
      8 #include "content/gpu/gpu_process.h"
      9 
     10 namespace content {
     11 
     12 InProcessGpuThread::InProcessGpuThread(const std::string& channel_id)
     13     : base::Thread("Chrome_InProcGpuThread"),
     14       channel_id_(channel_id),
     15       gpu_process_(NULL) {
     16 }
     17 
     18 InProcessGpuThread::~InProcessGpuThread() {
     19   Stop();
     20 }
     21 
     22 void InProcessGpuThread::Init() {
     23   gpu_process_ = new GpuProcess();
     24   // The process object takes ownership of the thread object, so do not
     25   // save and delete the pointer.
     26   gpu_process_->set_main_thread(new GpuChildThread(channel_id_));
     27 }
     28 
     29 void InProcessGpuThread::CleanUp() {
     30   SetThreadWasQuitProperly(true);
     31   delete gpu_process_;
     32 }
     33 
     34 base::Thread* CreateInProcessGpuThread(const std::string& channel_id) {
     35   return new InProcessGpuThread(channel_id);
     36 }
     37 
     38 }  // namespace content
     39