| 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 | 
|  |