fix gc timeout

This commit is contained in:
Kevin Jahns
2017-05-24 16:34:57 +02:00
parent 2ea163a5cf
commit 68c417fe6f
4 changed files with 9 additions and 7 deletions

View File

@@ -79,7 +79,7 @@ export default function extendDatabase (Y /* :any */) {
function garbageCollect () {
return os.whenTransactionsFinished().then(function () {
if (os.gc1.length > 0 || os.gc2.length > 0) {
if (os.gcTimeout > 0 && (os.gc1.length > 0 || os.gc2.length > 0)) {
if (!os.y.connector.isSynced) {
console.warn('gc should be empty when not synced!')
}
@@ -265,7 +265,7 @@ export default function extendDatabase (Y /* :any */) {
}
}
* destroy () {
clearInterval(this.gcInterval)
clearTimeout(this.gcInterval)
this.gcInterval = null
this.stopRepairCheck()
}

View File

@@ -225,13 +225,13 @@ class YConfig {
} else {
this.connector.disconnect()
}
return this.db.whenTransactionsFinished(function () {
this.db.destroyTypes()
return this.db.whenTransactionsFinished().then(function () {
self.db.destroyTypes()
// make sure to wait for all transactions before destroying the db
this.db.requestTransaction(function * () {
self.db.requestTransaction(function * () {
yield * self.db.destroy()
})
return this.db.whenTransactionsFinished()
return self.db.whenTransactionsFinished()
})
}
}