1727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease// Copyright 2013 the V8 project authors. All rights reserved. 2727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease// Use of this source code is governed by a BSD-style license that can be 3727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease// found in the LICENSE file. 4727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 5727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#include "src/libplatform/worker-thread.h" 6727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 79c745321260bb728ab1cd1c8fd5f075854b2ad49Behdad Esfahbod#include "include/v8-platform.h" 8727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease#include "src/libplatform/task-queue.h" 9727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 10727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Leasenamespace v8 { 11727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Leasenamespace platform { 12727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 13727dee178a392d20eb050d0c446f2fcc29058fa1Victoria LeaseWorkerThread::WorkerThread(TaskQueue* queue) 14727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease : Thread(Options("V8 WorkerThread")), queue_(queue) { 15727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease Start(); 16727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease} 17727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 18727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 19727dee178a392d20eb050d0c446f2fcc29058fa1Victoria LeaseWorkerThread::~WorkerThread() { 20727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease Join(); 21727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease} 22727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 23727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 24727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Leasevoid WorkerThread::Run() { 25727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease while (Task* task = queue_->GetNext()) { 26727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease task->Run(); 27727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease delete task; 28727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease } 29727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease} 30727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease 31727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease} } // namespace v8::platform 32727dee178a392d20eb050d0c446f2fcc29058fa1Victoria Lease