Merge pull request #1039 from strongloop/fix/kv-memory-reference-error

kv-memory: fix crash in regular cleanup
This commit is contained in:
Miroslav Bajtoš 2016-08-10 14:18:11 +02:00 committed by GitHub
commit b01df10eae
2 changed files with 10 additions and 9 deletions

View File

@ -31,8 +31,15 @@ KeyValueMemoryConnector.prototype._setupRegularCleanup = function() {
// key expiration too, the scheduled cleanup is merely a performance
// optimization.
var self = this;
this._cleanupTimer = setInterval(
function() { self._removeExpiredItems(); },
var timer = this._cleanupTimer = setInterval(
function() {
if (self && self._removeExpiredItems) {
self._removeExpiredItems();
} else {
// The datasource/connector was destroyed - cancel the timer
clearInterval(timer);
}
},
1000);
this._cleanupTimer.unref();
};

View File

@ -2,15 +2,9 @@ var kvMemory = require('../lib/connectors/kv-memory');
var DataSource = require('..').DataSource;
describe('KeyValue-Memory connector', function() {
var lastDataSource;
var dataSourceFactory = function() {
lastDataSource = new DataSource({ connector: kvMemory });
return lastDataSource;
return new DataSource({ connector: kvMemory });
};
afterEach(function disconnectKVMemoryConnector() {
if (lastDataSource) return lastDataSource.disconnect();
});
require('./kvao.suite')(dataSourceFactory);
});