v8
3.25.30(node0.11.13)
V8 is Google's open source JavaScript engine
Main Page
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Pages
task-queue.h
Go to the documentation of this file.
1
// Copyright 2013 the V8 project authors. All rights reserved.
2
// Redistribution and use in source and binary forms, with or without
3
// modification, are permitted provided that the following conditions are
4
// met:
5
//
6
// * Redistributions of source code must retain the above copyright
7
// notice, this list of conditions and the following disclaimer.
8
// * Redistributions in binary form must reproduce the above
9
// copyright notice, this list of conditions and the following
10
// disclaimer in the documentation and/or other materials provided
11
// with the distribution.
12
// * Neither the name of Google Inc. nor the names of its
13
// contributors may be used to endorse or promote products derived
14
// from this software without specific prior written permission.
15
//
16
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
28
#ifndef V8_LIBPLATFORM_TASK_QUEUE_H_
29
#define V8_LIBPLATFORM_TASK_QUEUE_H_
30
31
#include <queue>
32
33
// TODO(jochen): We should have our own version of globals.h.
34
#include "../globals.h"
35
#include "../platform/mutex.h"
36
#include "../platform/semaphore.h"
37
38
namespace
v8 {
39
40
class
Task;
41
42
namespace
internal {
43
44
class
TaskQueue
{
45
public
:
46
TaskQueue
();
47
~TaskQueue
();
48
49
// Appends a task to the queue. The queue takes ownership of |task|.
50
void
Append
(
Task
* task);
51
52
// Returns the next task to process. Blocks if no task is available. Returns
53
// NULL if the queue is terminated.
54
Task
*
GetNext
();
55
56
// Terminate the queue.
57
void
Terminate
();
58
59
private
:
60
Mutex lock_;
61
Semaphore process_queue_semaphore_;
62
std::queue<Task*> task_queue_;
63
bool
terminated_;
64
65
DISALLOW_COPY_AND_ASSIGN(
TaskQueue
);
66
};
67
68
} }
// namespace v8::internal
69
70
71
#endif // V8_LIBPLATFORM_TASK_QUEUE_H_
v8::internal::TaskQueue::GetNext
Task * GetNext()
Definition:
task-queue.cc:54
v8::internal::TaskQueue::~TaskQueue
~TaskQueue()
Definition:
task-queue.cc:39
v8::internal::TaskQueue::TaskQueue
TaskQueue()
Definition:
task-queue.cc:36
v8::internal::TaskQueue::Append
void Append(Task *task)
Definition:
task-queue.cc:46
v8::internal::TaskQueue
Definition:
task-queue.h:44
v8::internal::TaskQueue::Terminate
void Terminate()
Definition:
task-queue.cc:73
v8::Task
Definition:
v8-platform.h:38
src
libplatform
task-queue.h
Generated on Sat Jun 7 2014 23:54:20 for v8 by
1.8.6