@@ -261,6 +261,30 @@ void LoopIdleTime(const FunctionCallbackInfo<Value>& args) {
261
261
args.GetReturnValue ().Set (1.0 * idle_time / NANOS_PER_MILLIS);
262
262
}
263
263
264
+ void UvMetricsInfo (const FunctionCallbackInfo<Value>& args) {
265
+ Environment* env = Environment::GetCurrent (args);
266
+ uv_metrics_t metrics;
267
+
268
+ // uv_metrics_info always return 0
269
+ CHECK_EQ (uv_metrics_info (env->event_loop (), &metrics), 0 );
270
+
271
+ Local<Object> obj = Object::New (env->isolate ());
272
+ obj->Set (env->context (),
273
+ env->loop_count (),
274
+ Integer::NewFromUnsigned (env->isolate (), metrics.loop_count ))
275
+ .Check ();
276
+ obj->Set (env->context (),
277
+ env->events (),
278
+ Integer::NewFromUnsigned (env->isolate (), metrics.events ))
279
+ .Check ();
280
+ obj->Set (env->context (),
281
+ env->events_waiting (),
282
+ Integer::NewFromUnsigned (env->isolate (), metrics.events_waiting ))
283
+ .Check ();
284
+
285
+ args.GetReturnValue ().Set (obj);
286
+ }
287
+
264
288
void CreateELDHistogram (const FunctionCallbackInfo<Value>& args) {
265
289
Environment* env = Environment::GetCurrent (args);
266
290
int64_t interval = args[0 ].As <Integer>()->Value ();
@@ -324,6 +348,7 @@ static void CreatePerIsolateProperties(IsolateData* isolate_data,
324
348
SetMethod (isolate, target, " loopIdleTime" , LoopIdleTime);
325
349
SetMethod (isolate, target, " createELDHistogram" , CreateELDHistogram);
326
350
SetMethod (isolate, target, " markBootstrapComplete" , MarkBootstrapComplete);
351
+ SetMethod (isolate, target, " uvMetricsInfo" , UvMetricsInfo);
327
352
SetFastMethodNoSideEffect (
328
353
isolate, target, " now" , SlowPerformanceNow, &fast_performance_now);
329
354
}
@@ -390,6 +415,7 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) {
390
415
registry->Register (LoopIdleTime);
391
416
registry->Register (CreateELDHistogram);
392
417
registry->Register (MarkBootstrapComplete);
418
+ registry->Register (UvMetricsInfo);
393
419
registry->Register (SlowPerformanceNow);
394
420
registry->Register (FastPerformanceNow);
395
421
registry->Register (fast_performance_now.GetTypeInfo ());
0 commit comments