rageshake: fix race when collecting logs
*apparently* it's possible for your indexeddb transaction to complete in the background, so that the `oncomplete` handler is never called. Make sure that the oncomplete handler is set *before* doing the work.
This commit is contained in:
parent
15accf33f5
commit
6fd6ea9b8e
|
@ -205,9 +205,6 @@ class IndexedDBLogStore {
|
||||||
}
|
}
|
||||||
let txn = this.db.transaction(["logs", "logslastmod"], "readwrite");
|
let txn = this.db.transaction(["logs", "logslastmod"], "readwrite");
|
||||||
let objStore = txn.objectStore("logs");
|
let objStore = txn.objectStore("logs");
|
||||||
objStore.add(this._generateLogEntry(lines));
|
|
||||||
let lastModStore = txn.objectStore("logslastmod");
|
|
||||||
lastModStore.put(this._generateLastModifiedTime());
|
|
||||||
txn.oncomplete = (event) => {
|
txn.oncomplete = (event) => {
|
||||||
resolve();
|
resolve();
|
||||||
};
|
};
|
||||||
|
@ -219,6 +216,9 @@ class IndexedDBLogStore {
|
||||||
new Error("Failed to write logs: " + event.target.errorCode)
|
new Error("Failed to write logs: " + event.target.errorCode)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
objStore.add(this._generateLogEntry(lines));
|
||||||
|
let lastModStore = txn.objectStore("logslastmod");
|
||||||
|
lastModStore.put(this._generateLastModifiedTime());
|
||||||
});
|
});
|
||||||
return this.flushPromise;
|
return this.flushPromise;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue