MainThreadDebugger::MainThreadDebugger(v8::Isolate* isolate) : ThreadDebugger(isolate), m_taskRunner(wrapUnique(new InspectorTaskRunner())), m_paused(false) { MutexLocker locker(creationMutex()); ASSERT(!s_instance); s_instance = this; }
void MainThreadDebugger::interruptMainThreadAndRun(std::unique_ptr<InspectorTaskRunner::Task> task) { MutexLocker locker(creationMutex()); if (s_instance) { s_instance->m_taskRunner->appendTask(std::move(task)); s_instance->m_taskRunner->interruptAndRunAllTasksDontWait(s_instance->m_isolate); } }
MainThreadDebugger::MainThreadDebugger(PassOwnPtr<ClientMessageLoop> clientMessageLoop, v8::Isolate* isolate) : ThreadDebugger(isolate) , m_clientMessageLoop(clientMessageLoop) , m_taskRunner(adoptPtr(new InspectorTaskRunner(isolate))) { MutexLocker locker(creationMutex()); ASSERT(!s_instance); s_instance = this; }
MainThreadDebugger::MainThreadDebugger(PassOwnPtr<ClientMessageLoop> clientMessageLoop, v8::Isolate* isolate) : ScriptDebuggerBase(isolate, ScriptDebugServer::create(isolate, this)) , m_clientMessageLoop(clientMessageLoop) , m_pausedFrame(nullptr) { MutexLocker locker(creationMutex()); ASSERT(!s_instance); s_instance = this; }
MainThreadDebugger::~MainThreadDebugger() { MutexLocker locker(creationMutex()); ASSERT(s_instance == this); s_instance = nullptr; }
void MainThreadDebugger::interruptMainThreadAndRun(PassOwnPtr<InspectorTaskRunner::Task> task) { MutexLocker locker(creationMutex()); if (s_instance) s_instance->m_taskRunner->interruptAndRun(task); }
void MainThreadDebugger::interruptMainThreadAndRun(PassOwnPtr<ScriptDebugServer::Task> task) { MutexLocker locker(creationMutex()); if (s_instance) s_instance->scriptDebugServer()->interruptAndRun(task); }