| Index: src/debug.cc
|
| diff --git a/src/debug.cc b/src/debug.cc
|
| index 6adb38a17ceaa9c89903beb658fd1c6c1fbcac31..1f87595f5fc568f7f8b3213d9f2710afa5818dce 100644
|
| --- a/src/debug.cc
|
| +++ b/src/debug.cc
|
| @@ -2632,9 +2632,6 @@ Debugger::Debugger(Isolate* isolate)
|
| never_unload_debugger_(false),
|
| message_handler_(NULL),
|
| debugger_unload_pending_(false),
|
| - debug_message_dispatch_handler_(NULL),
|
| - message_dispatch_helper_thread_(NULL),
|
| - agent_(NULL),
|
| command_queue_(isolate->logger(), kQueueInitialSize),
|
| command_received_(0),
|
| event_command_queue_(isolate->logger(), kQueueInitialSize),
|
| @@ -3189,7 +3186,7 @@ void Debugger::SetMessageHandler(v8::Debug::MessageHandler2 handler) {
|
| // Send an empty command to the debugger if in a break to make JavaScript
|
| // run again if the debugger is closed.
|
| if (isolate_->debug()->InDebugger()) {
|
| - ProcessCommand(Vector<const uint16_t>::empty());
|
| + EnqueueCommandMessage(Vector<const uint16_t>::empty());
|
| }
|
| }
|
| }
|
| @@ -3211,18 +3208,6 @@ void Debugger::ListenersChanged() {
|
| }
|
|
|
|
|
| -void Debugger::SetDebugMessageDispatchHandler(
|
| - v8::Debug::DebugMessageDispatchHandler handler, bool provide_locker) {
|
| - LockGuard<Mutex> lock_guard(&dispatch_handler_access_);
|
| - debug_message_dispatch_handler_ = handler;
|
| -
|
| - if (provide_locker && message_dispatch_helper_thread_ == NULL) {
|
| - message_dispatch_helper_thread_ = new MessageDispatchHelperThread(isolate_);
|
| - message_dispatch_helper_thread_->Start();
|
| - }
|
| -}
|
| -
|
| -
|
| // Calls the registered debug message handler. This callback is part of the
|
| // public API.
|
| void Debugger::InvokeMessageHandler(MessageImpl message) {
|
| @@ -3238,8 +3223,8 @@ void Debugger::InvokeMessageHandler(MessageImpl message) {
|
| // a copy of the command string managed by the debugger. Up to this
|
| // point, the command data was managed by the API client. Called
|
| // by the API client thread.
|
| -void Debugger::ProcessCommand(Vector<const uint16_t> command,
|
| - v8::Debug::ClientData* client_data) {
|
| +void Debugger::EnqueueCommandMessage(Vector<const uint16_t> command,
|
| + v8::Debug::ClientData* client_data) {
|
| // Need to cast away const.
|
| CommandMessage message = CommandMessage::New(
|
| Vector<uint16_t>(const_cast<uint16_t*>(command.start()),
|
| @@ -3253,18 +3238,6 @@ void Debugger::ProcessCommand(Vector<const uint16_t> command,
|
| if (!isolate_->debug()->InDebugger()) {
|
| isolate_->stack_guard()->RequestDebugCommand();
|
| }
|
| -
|
| - MessageDispatchHelperThread* dispatch_thread;
|
| - {
|
| - LockGuard<Mutex> lock_guard(&dispatch_handler_access_);
|
| - dispatch_thread = message_dispatch_helper_thread_;
|
| - }
|
| -
|
| - if (dispatch_thread == NULL) {
|
| - CallMessageDispatchHandler();
|
| - } else {
|
| - dispatch_thread->Schedule();
|
| - }
|
| }
|
|
|
|
|
| @@ -3312,60 +3285,6 @@ MaybeHandle<Object> Debugger::Call(Handle<JSFunction> fun,
|
| }
|
|
|
|
|
| -static void StubMessageHandler2(const v8::Debug::Message& message) {
|
| - // Simply ignore message.
|
| -}
|
| -
|
| -
|
| -bool Debugger::StartAgent(const char* name, int port,
|
| - bool wait_for_connection) {
|
| - if (wait_for_connection) {
|
| - // Suspend V8 if it is already running or set V8 to suspend whenever
|
| - // it starts.
|
| - // Provide stub message handler; V8 auto-continues each suspend
|
| - // when there is no message handler; we doesn't need it.
|
| - // Once become suspended, V8 will stay so indefinitely long, until remote
|
| - // debugger connects and issues "continue" command.
|
| - Debugger::message_handler_ = StubMessageHandler2;
|
| - v8::Debug::DebugBreak(reinterpret_cast<v8::Isolate*>(isolate_));
|
| - }
|
| -
|
| - if (agent_ == NULL) {
|
| - agent_ = new DebuggerAgent(isolate_, name, port);
|
| - agent_->Start();
|
| - }
|
| - return true;
|
| -}
|
| -
|
| -
|
| -void Debugger::StopAgent() {
|
| - if (agent_ != NULL) {
|
| - agent_->Shutdown();
|
| - agent_->Join();
|
| - delete agent_;
|
| - agent_ = NULL;
|
| - }
|
| -}
|
| -
|
| -
|
| -void Debugger::WaitForAgent() {
|
| - if (agent_ != NULL)
|
| - agent_->WaitUntilListening();
|
| -}
|
| -
|
| -
|
| -void Debugger::CallMessageDispatchHandler() {
|
| - v8::Debug::DebugMessageDispatchHandler handler;
|
| - {
|
| - LockGuard<Mutex> lock_guard(&dispatch_handler_access_);
|
| - handler = Debugger::debug_message_dispatch_handler_;
|
| - }
|
| - if (handler != NULL) {
|
| - handler();
|
| - }
|
| -}
|
| -
|
| -
|
| EnterDebugger::EnterDebugger(Isolate* isolate)
|
| : isolate_(isolate),
|
| prev_(isolate_->debug()->debugger_entry()),
|
| @@ -3703,38 +3622,4 @@ void LockingCommandMessageQueue::Clear() {
|
| queue_.Clear();
|
| }
|
|
|
| -
|
| -MessageDispatchHelperThread::MessageDispatchHelperThread(Isolate* isolate)
|
| - : Thread("v8:MsgDispHelpr"),
|
| - isolate_(isolate), sem_(0),
|
| - already_signalled_(false) {
|
| -}
|
| -
|
| -
|
| -void MessageDispatchHelperThread::Schedule() {
|
| - {
|
| - LockGuard<Mutex> lock_guard(&mutex_);
|
| - if (already_signalled_) {
|
| - return;
|
| - }
|
| - already_signalled_ = true;
|
| - }
|
| - sem_.Signal();
|
| -}
|
| -
|
| -
|
| -void MessageDispatchHelperThread::Run() {
|
| - while (true) {
|
| - sem_.Wait();
|
| - {
|
| - LockGuard<Mutex> lock_guard(&mutex_);
|
| - already_signalled_ = false;
|
| - }
|
| - {
|
| - Locker locker(reinterpret_cast<v8::Isolate*>(isolate_));
|
| - isolate_->debugger()->CallMessageDispatchHandler();
|
| - }
|
| - }
|
| -}
|
| -
|
| } } // namespace v8::internal
|
|
|