From 25d9c1a14d098d87d17dfb286a921d2148fc95a1 Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Tue, 9 Jul 2013 20:38:44 +0800 Subject: [PATCH] Add process.activateUvLoop() API. --- common/api/atom_bindings.cc | 17 +++++++++++++++++ common/api/atom_bindings.h | 1 + vendor/node | 2 +- 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/common/api/atom_bindings.cc b/common/api/atom_bindings.cc index 3570075743..ca9f09f638 100644 --- a/common/api/atom_bindings.cc +++ b/common/api/atom_bindings.cc @@ -10,10 +10,20 @@ namespace atom { +namespace { + +static uv_async_t dummy_uv_handle; + +void UvNoOp(uv_async_t* handle, int status) { +} + +} // namespace + // Defined in atom_extensions.cc. node::node_module_struct* GetBuiltinModule(const char *name, bool is_browser); AtomBindings::AtomBindings() { + uv_async_init(uv_default_loop(), &dummy_uv_handle, UvNoOp); } AtomBindings::~AtomBindings() { @@ -24,6 +34,7 @@ void AtomBindings::BindTo(v8::Handle process) { node::SetMethod(process, "atomBinding", Binding); node::SetMethod(process, "crash", Crash); + node::SetMethod(process, "activateUvLoop", ActivateUVLoop); } // static @@ -79,4 +90,10 @@ v8::Handle AtomBindings::Crash(const v8::Arguments& args) { return v8::Undefined(); } +// static +v8::Handle AtomBindings::ActivateUVLoop(const v8::Arguments& args) { + uv_async_send(&dummy_uv_handle); + return v8::Undefined(); +} + } // namespace atom diff --git a/common/api/atom_bindings.h b/common/api/atom_bindings.h index 7a1fa330c7..8280b77609 100644 --- a/common/api/atom_bindings.h +++ b/common/api/atom_bindings.h @@ -22,6 +22,7 @@ class AtomBindings { private: static v8::Handle Binding(const v8::Arguments& args); static v8::Handle Crash(const v8::Arguments& args); + static v8::Handle ActivateUVLoop(const v8::Arguments& args); DISALLOW_COPY_AND_ASSIGN(AtomBindings); }; diff --git a/vendor/node b/vendor/node index 13b5a98d46..4b4c40a51d 160000 --- a/vendor/node +++ b/vendor/node @@ -1 +1 @@ -Subproject commit 13b5a98d46ce4604d5e4b984c41d896d436a8d4c +Subproject commit 4b4c40a51dfc3033f904756797d18b11b75e045c