mirror of
https://github.com/electron/electron.git
synced 2026-04-10 03:01:51 -04:00
refactor: add a wrapper for wrangling uv handles. (#25662)
This commit is contained in:
@@ -56,14 +56,12 @@ void V8FatalErrorCallback(const char* location, const char* message) {
|
||||
} // namespace
|
||||
|
||||
ElectronBindings::ElectronBindings(uv_loop_t* loop) {
|
||||
uv_async_init(loop, &call_next_tick_async_, OnCallNextTick);
|
||||
call_next_tick_async_.data = this;
|
||||
uv_async_init(loop, call_next_tick_async_.get(), OnCallNextTick);
|
||||
call_next_tick_async_.get()->data = this;
|
||||
metrics_ = base::ProcessMetrics::CreateCurrentProcessMetrics();
|
||||
}
|
||||
|
||||
ElectronBindings::~ElectronBindings() {
|
||||
uv_close(reinterpret_cast<uv_handle_t*>(&call_next_tick_async_), nullptr);
|
||||
}
|
||||
ElectronBindings::~ElectronBindings() {}
|
||||
|
||||
// static
|
||||
void ElectronBindings::BindProcess(v8::Isolate* isolate,
|
||||
@@ -131,7 +129,7 @@ void ElectronBindings::ActivateUVLoop(v8::Isolate* isolate) {
|
||||
return;
|
||||
|
||||
pending_next_ticks_.push_back(env);
|
||||
uv_async_send(&call_next_tick_async_);
|
||||
uv_async_send(call_next_tick_async_.get());
|
||||
}
|
||||
|
||||
// static
|
||||
|
||||
@@ -14,6 +14,7 @@
|
||||
#include "base/process/process_metrics.h"
|
||||
#include "base/strings/string16.h"
|
||||
#include "shell/common/gin_helper/promise.h"
|
||||
#include "shell/common/node_bindings.h"
|
||||
#include "uv.h" // NOLINT(build/include_directory)
|
||||
|
||||
namespace gin_helper {
|
||||
@@ -74,7 +75,7 @@ class ElectronBindings {
|
||||
bool success,
|
||||
std::unique_ptr<memory_instrumentation::GlobalMemoryDump> dump);
|
||||
|
||||
uv_async_t call_next_tick_async_;
|
||||
UvHandle<uv_async_t> call_next_tick_async_;
|
||||
std::list<node::Environment*> pending_next_ticks_;
|
||||
std::unique_ptr<base::ProcessMetrics> metrics_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user