v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
v8::platform::DefaultJobState Class Reference

#include <default-job.h>

Inheritance diagram for v8::platform::DefaultJobState:
Collaboration diagram for v8::platform::DefaultJobState:

Classes

class  JobDelegate
 

Public Member Functions

 DefaultJobState (Platform *platform, std::unique_ptr< JobTask > job_task, TaskPriority priority, size_t num_worker_threads)
 
virtual ~DefaultJobState ()
 
void NotifyConcurrencyIncrease ()
 
uint8_t AcquireTaskId ()
 
void ReleaseTaskId (uint8_t task_id)
 
void Join ()
 
void CancelAndWait ()
 
void CancelAndDetach ()
 
bool IsActive ()
 
bool CanRunFirstTask ()
 
bool DidRunTask ()
 
void UpdatePriority (TaskPriority)
 

Private Member Functions

size_t CappedMaxConcurrency (size_t worker_count) const
 
void CallOnWorkerThread (TaskPriority priority, std::unique_ptr< Task > task)
 

Private Attributes

Platform *const platform_
 
std::unique_ptr< JobTaskjob_task_
 
base::Mutex mutex_
 
TaskPriority priority_
 
size_t active_workers_ = 0
 
size_t pending_tasks_ = 0
 
std::atomic_bool is_canceled_ {false}
 
size_t num_worker_threads_
 
base::ConditionVariable worker_released_condition_
 
std::atomic< uint32_t > assigned_task_ids_ {0}
 

Detailed Description

Definition at line 19 of file default-job.h.

Constructor & Destructor Documentation

◆ DefaultJobState()

v8::platform::DefaultJobState::DefaultJobState ( Platform * platform,
std::unique_ptr< JobTask > job_task,
TaskPriority priority,
size_t num_worker_threads )

Definition at line 31 of file default-job.cc.

◆ ~DefaultJobState()

v8::platform::DefaultJobState::~DefaultJobState ( )
virtual

Definition at line 40 of file default-job.cc.

Member Function Documentation

◆ AcquireTaskId()

uint8_t v8::platform::DefaultJobState::AcquireTaskId ( )

Definition at line 64 of file default-job.cc.

Here is the call graph for this function:

◆ CallOnWorkerThread()

void v8::platform::DefaultJobState::CallOnWorkerThread ( TaskPriority priority,
std::unique_ptr< Task > task )
private

Definition at line 215 of file default-job.cc.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ CancelAndDetach()

void v8::platform::DefaultJobState::CancelAndDetach ( )

Definition at line 158 of file default-job.cc.

◆ CancelAndWait()

void v8::platform::DefaultJobState::CancelAndWait ( )

Definition at line 148 of file default-job.cc.

Here is the call graph for this function:

◆ CanRunFirstTask()

bool v8::platform::DefaultJobState::CanRunFirstTask ( )

Definition at line 168 of file default-job.cc.

Here is the call graph for this function:

◆ CappedMaxConcurrency()

size_t v8::platform::DefaultJobState::CappedMaxConcurrency ( size_t worker_count) const
private

Definition at line 210 of file default-job.cc.

Here is the caller graph for this function:

◆ DidRunTask()

bool v8::platform::DefaultJobState::DidRunTask ( )

Definition at line 178 of file default-job.cc.

Here is the call graph for this function:

◆ IsActive()

bool v8::platform::DefaultJobState::IsActive ( )

Definition at line 162 of file default-job.cc.

◆ Join()

void v8::platform::DefaultJobState::Join ( )

Definition at line 95 of file default-job.cc.

Here is the call graph for this function:

◆ NotifyConcurrencyIncrease()

void v8::platform::DefaultJobState::NotifyConcurrencyIncrease ( )

Definition at line 42 of file default-job.cc.

Here is the call graph for this function:

◆ ReleaseTaskId()

void v8::platform::DefaultJobState::ReleaseTaskId ( uint8_t task_id)

Definition at line 87 of file default-job.cc.

Here is the caller graph for this function:

◆ UpdatePriority()

void v8::platform::DefaultJobState::UpdatePriority ( TaskPriority priority)

Definition at line 220 of file default-job.cc.

Member Data Documentation

◆ active_workers_

size_t v8::platform::DefaultJobState::active_workers_ = 0
private

Definition at line 91 of file default-job.h.

◆ assigned_task_ids_

std::atomic<uint32_t> v8::platform::DefaultJobState::assigned_task_ids_ {0}
private

Definition at line 101 of file default-job.h.

◆ is_canceled_

std::atomic_bool v8::platform::DefaultJobState::is_canceled_ {false}
private

Definition at line 95 of file default-job.h.

◆ job_task_

std::unique_ptr<JobTask> v8::platform::DefaultJobState::job_task_
private

Definition at line 85 of file default-job.h.

◆ mutex_

base::Mutex v8::platform::DefaultJobState::mutex_
private

Definition at line 88 of file default-job.h.

◆ num_worker_threads_

size_t v8::platform::DefaultJobState::num_worker_threads_
private

Definition at line 97 of file default-job.h.

◆ pending_tasks_

size_t v8::platform::DefaultJobState::pending_tasks_ = 0
private

Definition at line 93 of file default-job.h.

◆ platform_

Platform* const v8::platform::DefaultJobState::platform_
private

Definition at line 84 of file default-job.h.

◆ priority_

TaskPriority v8::platform::DefaultJobState::priority_
private

Definition at line 89 of file default-job.h.

◆ worker_released_condition_

base::ConditionVariable v8::platform::DefaultJobState::worker_released_condition_
private

Definition at line 99 of file default-job.h.


The documentation for this class was generated from the following files: