run disconnect-related writes in parallel

This commit is contained in:
Daniel Lugo 2020-07-24 12:15:07 -04:00
parent 18844d2c55
commit cd9c7983c8

View file

@ -372,50 +372,13 @@ const cleanup = async pub => {
const outGoingID = await Utils.recipientToOutgoingID(pub) const outGoingID = await Utils.recipientToOutgoingID(pub)
await new Promise((res, rej) => { const promises = []
user
.get(Key.USER_TO_INCOMING)
.get(pub)
.put(null, ack => {
if (ack.err) {
rej(new Error(ack.err))
} else {
res()
}
})
})
await new Promise((res, rej) => { promises.push(
user new Promise((res, rej) => {
.get(Key.RECIPIENT_TO_OUTGOING)
.get(pub)
.put(null, ack => {
if (ack.err) {
rej(new Error(ack.err))
} else {
res()
}
})
})
await new Promise((res, rej) => {
user
.get(Key.USER_TO_LAST_REQUEST_SENT)
.get(pub)
.put(null, ack => {
if (ack.err) {
rej(new Error(ack.err))
} else {
res()
}
})
})
if (outGoingID) {
await new Promise((res, rej) => {
user user
.get(Key.OUTGOINGS) .get(Key.USER_TO_INCOMING)
.get(outGoingID) .get(pub)
.put(null, ack => { .put(null, ack => {
if (ack.err) { if (ack.err) {
rej(new Error(ack.err)) rej(new Error(ack.err))
@ -424,7 +387,56 @@ const cleanup = async pub => {
} }
}) })
}) })
)
promises.push(
new Promise((res, rej) => {
user
.get(Key.RECIPIENT_TO_OUTGOING)
.get(pub)
.put(null, ack => {
if (ack.err) {
rej(new Error(ack.err))
} else {
res()
}
})
})
)
promises.push(
new Promise((res, rej) => {
user
.get(Key.USER_TO_LAST_REQUEST_SENT)
.get(pub)
.put(null, ack => {
if (ack.err) {
rej(new Error(ack.err))
} else {
res()
}
})
})
)
if (outGoingID) {
promises.push(
new Promise((res, rej) => {
user
.get(Key.OUTGOINGS)
.get(outGoingID)
.put(null, ack => {
if (ack.err) {
rej(new Error(ack.err))
} else {
res()
}
})
})
)
} }
await Promise.all(promises)
} }
/** /**
@ -1227,9 +1239,7 @@ const disconnect = async pub => {
throw new Error('No handshake exists for this pub') throw new Error('No handshake exists for this pub')
} }
await cleanup(pub) await Promise.all([cleanup(pub), generateHandshakeAddress()])
await generateHandshakeAddress()
} }
/** /**