Merge pull request +10184 from c9/fix-vfs-cache-race-condition

Fix vfs cache race condition
pull/223/head
Fabian Jakobs 2015-11-02 14:29:50 +01:00
commit dbd2d25ed6
1 zmienionych plików z 8 dodań i 4 usunięć

Wyświetl plik

@ -1,14 +1,18 @@
define(function(require, exports, module) { define(function(require, exports, module) {
"use strict"; "use strict";
main.consumes = ["Plugin", "vfs.connect"]; main.consumes = [
"Plugin",
"vfs.connect",
"metrics"
];
main.provides = ["vfs.cache"]; main.provides = ["vfs.cache"];
return main; return main;
function main(options, imports, register) { function main(options, imports, register) {
var Plugin = imports.Plugin; var Plugin = imports.Plugin;
var connectVfs = imports["vfs.connect"].connect; var connectVfs = imports["vfs.connect"].connect;
var metrics = imports.metrics;
var async = require("async"); var async = require("async");
var uid = require("c9/uid"); var uid = require("c9/uid");
@ -54,10 +58,12 @@ define(function(require, exports, module) {
if (err) return done(err); if (err) return done(err);
entry.connectTime = Date.now() - entry.startTime; entry.connectTime = Date.now() - entry.startTime;
metrics.timing("vfs.connect.time", entry.connectTime);
entry.emit("loaded"); entry.emit("loaded");
cache[vfsid] = entry; cache[vfsid] = entry;
entry.keepalive();
vfs.on("destroy", function() { vfs.on("destroy", function() {
remove(vfsid); remove(vfsid);
@ -126,7 +132,6 @@ define(function(require, exports, module) {
}; };
entry.keepalive = function() { entry.keepalive = function() {
clearTimeout(timer);
startTimer(); startTimer();
}; };
@ -139,7 +144,6 @@ define(function(require, exports, module) {
}, maxAge); }, maxAge);
} }
startTimer();
return entry; return entry;
} }