commit 6096d1ea62c6462ad02d4614792f84f5c525d2ba
parent 5d67656ea8cad4b1c7d08866ed659162590b9fb1
Author: Dan Stillman <dstillman@zotero.org>
Date: Tue, 3 Jan 2017 04:40:18 -0500
Fix hang on sync restart
Diffstat:
1 file changed, 9 insertions(+), 4 deletions(-)
diff --git a/chrome/content/zotero/xpcom/sync/syncRunner.js b/chrome/content/zotero/xpcom/sync/syncRunner.js
@@ -97,11 +97,16 @@ Zotero.Sync.Runner_Module = function (options = {}) {
* @param {Function} [options.onError] Function to pass errors to instead of
* handling internally (used for testing)
*/
- this.sync = Zotero.serial(Zotero.Promise.coroutine(function* (options = {}) {
+ this.sync = Zotero.serial(function (options = {}) {
+ return this._sync(options);
+ });
+
+
+ this._sync = Zotero.Promise.coroutine(function* (options) {
// Clear message list
_errors = [];
- // Shouldn't be possible
+ // Shouldn't be possible because of serial()
if (_syncInProgress) {
let msg = Zotero.getString('sync.error.syncInProgress');
let e = new Zotero.Error(msg, 0, { dialogButtonText: null, frontWindowOnly: true });
@@ -233,14 +238,14 @@ Zotero.Sync.Runner_Module = function (options = {}) {
if (options.restartSync) {
delete options.restartSync;
Zotero.debug("Restarting sync");
- yield this.sync(options);
+ yield this._sync(options);
return;
}
Zotero.debug("Done syncing");
Zotero.Notifier.trigger('finish', 'sync', librariesToSync || []);
}
- }));
+ });
/**