@@ -59,6 +59,8 @@ NodeDebugger::NodeDebugger(v8::Isolate* isolate)
5959 if (wait_for_connection)
6060 v8::Debug::DebugBreak (isolate_);
6161
62+ uv_async_init (uv_default_loop (), &weak_up_ui_handle_, ProcessMessageInUI);
63+
6264 // Start a new IO thread.
6365 base::Thread::Options options;
6466 options.message_loop_type = base::MessageLoop::TYPE_IO;
@@ -106,9 +108,7 @@ void NodeDebugger::OnMessage(const std::string& message) {
106108 isolate_,
107109 reinterpret_cast <const uint16_t *>(message16.data ()), message16.size ());
108110
109- content::BrowserThread::PostTask (
110- content::BrowserThread::UI, FROM_HERE,
111- base::Bind (&v8::Debug::ProcessDebugMessages));
111+ uv_async_send (&weak_up_ui_handle_);
112112}
113113
114114void NodeDebugger::SendMessage (const std::string& message) {
@@ -130,6 +130,11 @@ void NodeDebugger::SendConnectMessage() {
130130 v8::V8::GetVersion (), ATOM_PRODUCT_NAME, kContentLength ), true );
131131}
132132
133+ // static
134+ void NodeDebugger::ProcessMessageInUI (uv_async_t * handle) {
135+ v8::Debug::ProcessDebugMessages ();
136+ }
137+
133138// static
134139void NodeDebugger::DebugMessageHandler (const v8::Debug::Message& message) {
135140 NodeDebugger* self = static_cast <NodeDebugger*>(
0 commit comments