From 0c401e87d86edef873ca1a9d6d88bcb6aadf81a8 Mon Sep 17 00:00:00 2001 From: XadillaX Date: Tue, 9 Apr 2019 17:22:58 +0800 Subject: [PATCH 1/2] process: add libuvHandlesCount() This method is to count libuv handles of current tick. --- doc/api/process.md | 25 +++++++++++++ lib/internal/bootstrap/node.js | 30 ++++++++++++++++ src/node_process_methods.cc | 36 +++++++++++++++++++ .../test-process-libuv-handles-count.js | 17 +++++++++ 4 files changed, 108 insertions(+) create mode 100644 test/parallel/test-process-libuv-handles-count.js diff --git a/doc/api/process.md b/doc/api/process.md index 888c0af660568c..4ad90eff144987 100644 --- a/doc/api/process.md +++ b/doc/api/process.md @@ -1400,6 +1400,30 @@ process.kill(process.pid, 'SIGHUP'); When `SIGUSR1` is received by a Node.js process, Node.js will start the debugger. See [Signal Events][]. +## process.LIBUV\_HANDLE\_TYPES + +This object indicates type enums for [libuv handles][] types. + +## process.libuvHandlesCount() + +Get [libuv handles][] count for current tick. + +The returned object contains two fileds: + +```js +{ + total: , + each: [ , , ... ] +} +``` + +You may get type enum via `process.LIBUV_HANDLE_TYPES`. e.g. + +```js +const result = process.libuvHandlesCount(); +result.each[process.LIBUV_HANDLE_TYPES.ASYNC]; // count of `uv_async_t` +``` + ## process.mainModule