Skip to content
This repository was archived by the owner on Apr 3, 2024. It is now read-only.

Commit 2ba5bbd

Browse files
author
Matt Loring
committed
Removed event emitter from v8 debug api
We were able to shave off a few ms by storing and invoking callbacks directly as opposed to registering them as named events and going through the event emitter pipeline. Addresses #71
1 parent 8eadace commit 2ba5bbd

File tree

1 file changed

+5
-13
lines changed

1 file changed

+5
-13
lines changed

lib/v8debugapi.js

Lines changed: 5 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020
/** @const */ var path = require('path');
2121
/** @const */ //var util = require('util');
2222

23-
/** @const */ var events = require('events');
2423
/** @const */ var state = require('./state.js');
2524
/** @const */ var logModule = require('@google/cloud-diagnostics-common').logger;
2625
/** @const */ var apiclasses = require('./apiclasses.js');
@@ -58,7 +57,6 @@ module.exports.create = function(logger_, config_, fileStats_) {
5857
var v8 = null;
5958
var logger = null;
6059
var config = null;
61-
var emitter = null;
6260
var fileStats = null;
6361
var breakpoints = {};
6462
var listeners = {};
@@ -90,8 +88,6 @@ module.exports.create = function(logger_, config_, fileStats_) {
9088
logger = logger_;
9189
config = config_;
9290
fileStats = fileStats_;
93-
emitter = new events.EventEmitter();
94-
emitter.setMaxListeners(0);
9591

9692
if (usePermanentListener) {
9793
logger.info('activating v8 breakpoint listener (permanent)');
@@ -181,7 +177,7 @@ module.exports.create = function(logger_, config_, fileStats_) {
181177

182178
v8.clearBreakPoint(v8bp.number());
183179
delete breakpoints[breakpoint.id];
184-
delete listeners[breakpoint.id];
180+
delete listeners[v8bp.number()];
185181
numBreakpoints--;
186182
if (numBreakpoints === 0 && !usePermanentListener) {
187183
// removed last breakpoint
@@ -196,17 +192,14 @@ module.exports.create = function(logger_, config_, fileStats_) {
196192
* @param {Function} callback
197193
*/
198194
wait: function(breakpoint, callback) {
199-
var eventName = 'v8breakpoint-' + breakpoints[breakpoint.id].v8Breakpoint
200-
.number();
195+
var num = breakpoints[breakpoint.id].v8Breakpoint.number();
201196
var listener = onBreakpointHit.bind(
202197
null, breakpoint, function(err) {
203-
emitter.removeListener(eventName, listener);
204-
delete listeners[breakpoint.id];
198+
delete listeners[num];
205199
callback(err);
206200
});
207201

208-
listeners[breakpoint.id] = listener;
209-
emitter.on(eventName, listener);
202+
listeners[num] = listener;
210203
},
211204

212205
// The following are for testing:
@@ -462,8 +455,7 @@ module.exports.create = function(logger_, config_, fileStats_) {
462455
eventData.breakPointsHit().forEach(function(hit) {
463456
var num = hit.script_break_point().number();
464457
logger.info('>>>V8 breakpoint hit<<< number: ' + num);
465-
var eventName = 'v8breakpoint-' + num;
466-
emitter.emit(eventName, execState, eventData);
458+
listeners[num](execState, eventData);
467459
});
468460
break;
469461
}

0 commit comments

Comments
 (0)