Skip to content

Commit 0ef6e9e

Browse files
committed
Replace setImmediate() for process.nextTick().
1 parent fc16c7c commit 0ef6e9e

5 files changed

Lines changed: 94 additions & 99 deletions

File tree

builders.js

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2086,27 +2086,24 @@ SchemaInstance.prototype.$$schema = null;
20862086

20872087
SchemaInstance.prototype.$async = function(callback, index) {
20882088
var self = this;
2089-
2090-
if (!callback)
2091-
callback = function(){};
2092-
2089+
!callback && (callback = function(){});
20932090
self.$$async = [];
20942091
self.$$result = [];
20952092
self.$$index = index;
20962093
self.$$callback = callback;
20972094
self.$$can = true;
2098-
2099-
setImmediate(function() {
2100-
self.$$can = false;
2101-
async_queue(self.$$async, function() {
2102-
self.$$callback(null, self.$$index !== undefined ? self.$$result[self.$$index] : self.$$result);
2103-
self.$$callback = null;
2104-
});
2105-
});
2106-
2095+
process.nextTick(async_continue, self);
21072096
return self;
21082097
};
21092098

2099+
function async_continue(self) {
2100+
self.$$can = false;
2101+
async_queue(self.$$async, function() {
2102+
self.$$callback(null, self.$$index !== undefined ? self.$$result[self.$$index] : self.$$result);
2103+
self.$$callback = null;
2104+
});
2105+
}
2106+
21102107
SchemaInstance.prototype.$repository = function(name, value) {
21112108

21122109
if (this.$$repository === undefined) {
@@ -3720,12 +3717,7 @@ RESTBuilder.prototype.exec = function(callback) {
37203717
var data = F.cache.read2(key);
37213718
if (data) {
37223719
var evt = new framework_utils.EventEmitter2();
3723-
3724-
setImmediate(function() {
3725-
evt.removeAllListeners();
3726-
evt = null;
3727-
});
3728-
3720+
process.nextTick(exec_removelisteners, evt);
37293721
callback(null, self.maketransform(this.$schema ? this.$schema.make(data.json) : data.json, data), data);
37303722
return evt;
37313723
}
@@ -3769,6 +3761,10 @@ RESTBuilder.prototype.exec = function(callback) {
37693761
}, self.$cookies, self.$headers, undefined, self.$timeout);
37703762
};
37713763

3764+
function exec_removelisteners(evt) {
3765+
evt.removeAllListeners();
3766+
}
3767+
37723768
function RESTBuilderResponse() {}
37733769

37743770
RESTBuilderResponse.prototype.cookie = function(name) {

index.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7464,7 +7464,7 @@ F._upgrade_continue = function(route, req, path) {
74647464
connection.options = route.options;
74657465
F.connections[id] = connection;
74667466
route.onInitialize.apply(connection, framework_internal.routeParam(route.param.length ? req.split : req.path, route));
7467-
setImmediate(() => socket.upgrade(connection));
7467+
process.nextTick(next_upgrade_continue, socket, connection);
74687468
};
74697469

74707470
if (route.middleware)
@@ -7473,14 +7473,18 @@ F._upgrade_continue = function(route, req, path) {
74737473
next();
74747474
};
74757475

7476+
function next_upgrade_continue(socket, connection) {
7477+
socket.upgrade(connection);
7478+
}
7479+
74767480
/**
74777481
* Request statistics writer
74787482
* @private
74797483
* @param {Boolean} beg
74807484
* @param {Boolean} isStaticFile
74817485
* @return {Framework}
74827486
*/
7483-
F._request_stats = function(beg, isStaticFile) {
7487+
F._request_stats = function(beg) {
74847488

74857489
if (beg)
74867490
F.stats.request.pending++;
@@ -10811,10 +10815,14 @@ Controller.prototype.invalid = function(status) {
1081110815
self.status = status;
1081210816

1081310817
var builder = new ErrorBuilder();
10814-
setImmediate(() => self.content(builder));
10818+
process.nextTick(next_controller_invalid);
1081510819
return builder;
1081610820
};
1081710821

10822+
function next_controller_invalid(self, builder) {
10823+
self.content(builder);
10824+
}
10825+
1081810826
/**
1081910827
* Registers a new problem
1082010828
* @param {String} message

nosql.js

Lines changed: 35 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -161,6 +161,10 @@ Database.prototype.meta = function(name, value) {
161161
return self;
162162
};
163163

164+
function next_operation(self, type) {
165+
self.next(type);
166+
}
167+
164168
Database.prototype.insert = function(doc, unique) {
165169
var self = this;
166170
var builder;
@@ -187,7 +191,7 @@ Database.prototype.insert = function(doc, unique) {
187191
builder = new DatabaseBuilder2();
188192
var json = framework_builders.isSchema(doc) ? doc.$clean() : doc;
189193
self.pending_append.push({ doc: JSON.stringify(json), builder: builder });
190-
setImmediate(() => self.next(1));
194+
process.nextTick(next_operation, self, 1);
191195
self.emit('insert', json);
192196
return builder;
193197
};
@@ -200,7 +204,7 @@ Database.prototype.update = function(doc, insert) {
200204
var self = this;
201205
var builder = new DatabaseBuilder();
202206
self.pending_update.push({ builder: builder, doc: framework_builders.isSchema(doc) ? doc.$clean() : doc, count: 0, insert: insert });
203-
setImmediate(() => self.next(2));
207+
process.nextTick(next_operation, self, 2);
204208
return builder;
205209
};
206210

@@ -214,7 +218,7 @@ Database.prototype.modify = function(doc, insert) {
214218
return builder;
215219

216220
self.pending_update.push({ builder: builder, doc: data, count: 0, keys: keys, insert: insert });
217-
setImmediate(() => self.next(2));
221+
process.nextTick(next_operation, self, 2);
218222
return builder;
219223
};
220224

@@ -250,7 +254,7 @@ Database.prototype.backup = function(filename, remove) {
250254
Database.prototype.drop = function() {
251255
var self = this;
252256
self.pending_drops = true;
253-
setImmediate(() => self.next(7));
257+
process.nextTick(next_operation, self, 7);
254258
return self;
255259
};
256260

@@ -281,7 +285,7 @@ Database.prototype.clear = Database.prototype.remove = function(filename) {
281285
backup = new Backuper(backup);
282286

283287
self.pending_remove.push({ builder: builder, count: 0, backup: backup });
284-
setImmediate(() => self.next(3));
288+
process.nextTick(next_operation, self, 3);
285289
return builder;
286290
};
287291

@@ -291,10 +295,10 @@ Database.prototype.find = function(view) {
291295

292296
if (view) {
293297
self.pending_reader_view.push({ builder: builder, count: 0, counter: 0, view: view });
294-
setImmediate(() => self.next(6));
298+
process.nextTick(next_operation, self, 6);
295299
} else {
296300
self.pending_reader.push({ builder: builder, count: 0, counter: 0, view: view });
297-
setImmediate(() => self.next(4));
301+
process.nextTick(next_operation, self, 4);
298302
}
299303

300304
return builder;
@@ -310,10 +314,10 @@ Database.prototype.count = function(view) {
310314

311315
if (view) {
312316
self.pending_reader_view.push({ builder: builder, count: 0, view: view, type: 1 });
313-
setImmediate(() => self.next(6));
317+
process.nextTick(next_operation, self, 6);
314318
} else {
315319
self.pending_reader.push({ builder: builder, count: 0, view: view, type: 1 });
316-
setImmediate(() => self.next(4));
320+
process.nextTick(next_operation, self, 4);
317321
}
318322

319323
return builder;
@@ -326,10 +330,10 @@ Database.prototype.one = function(view) {
326330

327331
if (view) {
328332
self.pending_reader_view.push({ builder: builder, count: 0, view: view });
329-
setImmediate(() => self.next(6));
333+
process.nextTick(next_operation, self, 6);
330334
} else {
331335
self.pending_reader.push({ builder: builder, count: 0, view: view });
332-
setImmediate(() => self.next(4));
336+
process.nextTick(next_operation, self, 4);
333337
}
334338

335339
return builder;
@@ -342,10 +346,10 @@ Database.prototype.top = function(max, view) {
342346

343347
if (view) {
344348
self.pending_reader_view.push({ builder: builder, count: 0, counter: 0, view: view });
345-
setImmediate(() => self.next(6));
349+
process.nextTick(next_operation, self, 6);
346350
} else {
347351
self.pending_reader.push({ builder: builder, count: 0, counter: 0, view: view });
348-
setImmediate(() => self.next(4));
352+
process.nextTick(next_operation, self, 4);
349353
}
350354

351355
return builder;
@@ -414,7 +418,7 @@ Database.prototype.next = function(type) {
414418

415419
if (self.step !== type) {
416420
self.step = 0;
417-
setImmediate(() => self.next(0));
421+
process.nextTick(next_operation, self, 0);
418422
}
419423

420424
return self;
@@ -425,7 +429,7 @@ Database.prototype.refresh = function() {
425429
if (!self.views)
426430
return self;
427431
self.pending_views = true;
428-
setImmediate(() => self.next(5));
432+
process.nextTick(next_operation, self, 5);
429433
return self;
430434
};
431435

@@ -525,16 +529,16 @@ Database.prototype.$append = function() {
525529
next();
526530
});
527531

528-
}, function() {
529-
setImmediate(function() {
530-
self.next(0);
531-
setImmediate(() => self.refresh());
532-
});
533-
});
532+
}, () => process.nextTick(next_append, self));
534533

535534
return self;
536535
};
537536

537+
function next_append(self) {
538+
self.next(0);
539+
process.nextTick(() => self.refresh());
540+
}
541+
538542
Database.prototype.$append_inmemory = function() {
539543
var self = this;
540544
self.step = 1;
@@ -555,11 +559,7 @@ Database.prototype.$append_inmemory = function() {
555559
}
556560

557561
self.$save('#');
558-
559-
setImmediate(function() {
560-
self.next(0);
561-
setImmediate(() => self.refresh());
562-
});
562+
process.nextTick(next_append, self);
563563
});
564564
};
565565

@@ -621,9 +621,9 @@ Database.prototype.$update = function() {
621621
item.builder.$callback && item.builder.$callback(errorhandling(err, item.builder, item.count), item.count);
622622
}
623623

624-
setImmediate(function() {
624+
process.nextTick(function() {
625625
self.next(0);
626-
change && setImmediate(() => self.refresh());
626+
change && process.nextTick(() => self.refresh());
627627
});
628628
});
629629
});
@@ -691,9 +691,9 @@ Database.prototype.$update_inmemory = function() {
691691
}
692692
}
693693

694-
setImmediate(function() {
694+
process.nextTick(function() {
695695
self.next(0);
696-
change && setImmediate(() => self.refresh());
696+
change && process.nextTick(() => self.refresh());
697697
});
698698
});
699699
};
@@ -1202,9 +1202,9 @@ Database.prototype.$remove = function() {
12021202
item.builder.$callback && item.builder.$callback(errorhandling(null, item.builder, item.count), item.count);
12031203
}
12041204

1205-
setImmediate(function() {
1205+
process.nextTick(function() {
12061206
self.next(0);
1207-
change && setImmediate(() => self.refresh());
1207+
change && process.nextTick(() => self.refresh());
12081208
});
12091209
});
12101210
});
@@ -1268,7 +1268,7 @@ Database.prototype.$remove_inmemory = function() {
12681268
}
12691269

12701270
self.next(0);
1271-
change && setImmediate(() => self.refresh());
1271+
change && process.nextTick(() => self.refresh());
12721272
});
12731273
};
12741274

@@ -1342,7 +1342,7 @@ DatabaseBuilder.prototype.$callback2 = function(err, response, count) {
13421342
return self.$callback(err, response, count);
13431343

13441344
if (self.$joincount) {
1345-
setImmediate(() => self.$callback2(err, response, count));
1345+
process.nextTick(() => self.$callback2(err, response, count));
13461346
return self;
13471347
}
13481348

@@ -1472,7 +1472,7 @@ DatabaseBuilder.prototype.join = function(field, name, view) {
14721472
self.$joincount--;
14731473
});
14741474

1475-
setImmediate(function() {
1475+
process.nextTick(function() {
14761476
join.$fields && join.fields(self.$join[key].b);
14771477
join.$fields && self.$join[key].scalarfield && join.fields(self.$join[key].scalarfield);
14781478
});

test/test-tmp.js

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,3 @@ require('../index');
33
NOSQL('users').count().callback(function(err, count) {
44
console.log(err, count);
55
});
6-
7-
F.eval(function() {
8-
console.log(Builders.Page);
9-
});

0 commit comments

Comments
 (0)