if (wait_for_connection)
v8::Debug::DebugBreak(isolate_);
+ uv_async_init(uv_default_loop(), &weak_up_ui_handle_, ProcessMessageInUI);
+
// Start a new IO thread.
base::Thread::Options options;
options.message_loop_type = base::MessageLoop::TYPE_IO;
isolate_,
reinterpret_cast<const uint16_t*>(message16.data()), message16.size());
- content::BrowserThread::PostTask(
- content::BrowserThread::UI, FROM_HERE,
- base::Bind(&v8::Debug::ProcessDebugMessages));
+ uv_async_send(&weak_up_ui_handle_);
}
void NodeDebugger::SendMessage(const std::string& message) {
}
// static
+void NodeDebugger::ProcessMessageInUI(uv_async_t* handle) {
+ v8::Debug::ProcessDebugMessages();
+}
+
+// static
void NodeDebugger::DebugMessageHandler(const v8::Debug::Message& message) {
NodeDebugger* self = static_cast<NodeDebugger*>(
message.GetIsolate()->GetData(kIsolateSlot));
#include "base/threading/thread.h"
#include "net/test/embedded_test_server/stream_listen_socket.h"
#include "v8/include/v8-debug.h"
+#include "vendor/node/deps/uv/include/uv.h"
namespace atom {
void SendMessage(const std::string& message);
void SendConnectMessage();
+ static void ProcessMessageInUI(uv_async_t* handle);
+
static void DebugMessageHandler(const v8::Debug::Message& message);
// net::test_server::StreamListenSocket::Delegate:
v8::Isolate* isolate_;
+ uv_async_t weak_up_ui_handle_;
+
base::Thread thread_;
scoped_ptr<net::test_server::StreamListenSocket> server_;
scoped_ptr<net::test_server::StreamListenSocket> accepted_socket_;