#include "third_party/blink/renderer/platform/scheduler/worker/non_main_thread_impl.h"
#include <memory>
#include "base/check.h"
#include "base/feature_list.h"
#include "base/functional/bind.h"
#include "base/location.h"
#include "base/memory/scoped_refptr.h"
#include "base/message_loop/message_pump.h"
#include "base/message_loop/message_pump_type.h"
#include "base/run_loop.h"
#include "base/synchronization/waitable_event.h"
#include "base/task/sequence_manager/sequence_manager.h"
#include "base/task/sequence_manager/task_queue.h"
#include "base/task/single_thread_task_runner.h"
#include "base/threading/thread_restrictions.h"
#include "base/time/default_tick_clock.h"
#include "mojo/public/cpp/bindings/direct_receiver.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/platform/task_type.h"
#include "third_party/blink/renderer/platform/heap/blink_gc_memory_dump_provider.h"
#include "third_party/blink/renderer/platform/heap/thread_state.h"
#include "third_party/blink/renderer/platform/instrumentation/memory_pressure_listener.h"
#include "third_party/blink/renderer/platform/scheduler/common/task_priority.h"
#include "third_party/blink/renderer/platform/scheduler/worker/worker_scheduler_proxy.h"
#include "third_party/blink/renderer/platform/scheduler/worker/worker_thread_scheduler.h"
namespace blink {
std::unique_ptr<NonMainThread> NonMainThread::CreateThread(
const ThreadCreationParams& params) { … }
namespace scheduler {
NonMainThreadImpl::NonMainThreadImpl(const ThreadCreationParams& params)
: … { … }
NonMainThreadImpl::~NonMainThreadImpl() { … }
void NonMainThreadImpl::Init() { … }
std::unique_ptr<NonMainThreadSchedulerBase>
NonMainThreadImpl::CreateNonMainThreadScheduler(
base::sequence_manager::SequenceManager* sequence_manager) { … }
blink::ThreadScheduler* NonMainThreadImpl::Scheduler() { … }
scoped_refptr<base::SingleThreadTaskRunner> NonMainThreadImpl::GetTaskRunner()
const { … }
void NonMainThreadImpl::ShutdownOnThread() { … }
NonMainThreadImpl::SimpleThreadImpl::SimpleThreadImpl(
const WTF::String& name_prefix,
const base::SimpleThread ::Options& options,
base::TimeDelta realtime_period,
bool supports_gc,
NonMainThreadImpl* worker_thread,
base::MessagePumpType message_pump_type)
: … { … }
void NonMainThreadImpl::SimpleThreadImpl::CreateScheduler() { … }
NonMainThreadImpl::GCSupport::GCSupport(NonMainThreadImpl* thread) { … }
NonMainThreadImpl::GCSupport::~GCSupport() { … }
void NonMainThreadImpl::SimpleThreadImpl::ShutdownOnThread() { … }
void NonMainThreadImpl::SimpleThreadImpl::Run() { … }
void NonMainThreadImpl::SimpleThreadImpl::Quit() { … }
}
}