diff --git a/package.json b/package.json index ba2da062..46b9527a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "c9", "description": "New Cloud9 Client", - "version": "3.1.2605", + "version": "3.1.2623", "author": "Ajax.org B.V. ", "private": true, "main": "bin/c9", @@ -59,7 +59,7 @@ ], "c9plugins": { "c9.ide.language": "#eb4b0cd95a", - "c9.ide.language.core": "#82e9ed1729", + "c9.ide.language.core": "#6d594f4eda", "c9.ide.language.css": "#46ad561506", "c9.ide.language.generic": "#b47cbe58f9", "c9.ide.language.html": "#6ecb73a17b", @@ -69,7 +69,7 @@ "c9.ide.language.javascript.eslint": "#cb9e3f5a8e", "c9.ide.language.javascript.tern": "#4dedbbef74", "c9.ide.language.javascript.infer": "#b9c2e4bdb8", - "c9.ide.language.jsonalyzer": "#d5444f6b2c", + "c9.ide.language.jsonalyzer": "#60a25f327a", "c9.ide.language.codeintel": "#4e0a272229", "c9.ide.collab": "#79b094a770", "c9.ide.local": "#9169fec157", @@ -95,7 +95,7 @@ "c9.ide.imgeditor": "#612e75ef4f", "c9.ide.immediate": "#76c8e3213a", "c9.ide.installer": "#b2e4ba0a92", - "c9.ide.language.python": "#aff0772c78", + "c9.ide.language.python": "#15e7ff9a3f", "c9.ide.language.go": "#6ce1c7a7ef", "c9.ide.mount": "#6ddfd05db3", "c9.ide.navigate": "#5d5707058c", diff --git a/plugins/c9.vfs.client/vfs.ping.js b/plugins/c9.vfs.client/vfs.ping.js index 4e02ade7..05bdbc9c 100644 --- a/plugins/c9.vfs.client/vfs.ping.js +++ b/plugins/c9.vfs.client/vfs.ping.js @@ -9,6 +9,7 @@ define(function(require, exports, module) { var Plugin = imports.Plugin; var c9 = imports.c9; var ext = imports.ext; + var vfs = imports.vfs; /***** Initialization *****/ @@ -61,6 +62,9 @@ define(function(require, exports, module) { } if (!api) return callback(new Error("Client is offline")); + + if (!vfs.isIdle()) + return vfs.connection.once("message", ping.bind(null, callback)); var start = Date.now(); api.ping("serverTime", function(err, response) { diff --git a/plugins/c9.vfs.client/vfs_client.js b/plugins/c9.vfs.client/vfs_client.js index 0fb2d9c6..9ca3bf84 100644 --- a/plugins/c9.vfs.client/vfs_client.js +++ b/plugins/c9.vfs.client/vfs_client.js @@ -329,6 +329,11 @@ define(function(require, exports, module) { bufferedVfsCalls.push([method, path, options, callback]); } + function isIdle() { + return !Object.keys(connection.unacked).length && + consumer && !Object.keys(consumer.callbacks || {}).length; + } + /***** Lifecycle *****/ plugin.on("load", function(){ @@ -429,7 +434,9 @@ define(function(require, exports, module) { // Extending the API use: vfsCall.bind(null, "use"), extend: vfsCall.bind(null, "extend"), - unextend: vfsCall.bind(null, "unextend") + unextend: vfsCall.bind(null, "unextend"), + + isIdle: isIdle, }); register(null, {