From edb5e4f7197db7152ec6ddf7fd997f2754d4b315 Mon Sep 17 00:00:00 2001 From: Kevin Jahns Date: Fri, 4 Aug 2017 18:06:36 +0200 Subject: [PATCH] send sync step 1 after sync step 2 is processed (for slaves) --- src/MessageHandler.js | 39 +++++++++++++++++++++------------------ 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/src/MessageHandler.js b/src/MessageHandler.js index 2ae138b7..0fdecf74 100644 --- a/src/MessageHandler.js +++ b/src/MessageHandler.js @@ -92,27 +92,30 @@ export function computeMessageSyncStep1 (decoder, encoder, conn, senderConn, sen conn.y.destroy() } - // send sync step 2 - conn.y.db.requestTransaction(function * () { - encoder.writeVarString('sync step 2') - encoder.writeVarString(conn.authInfo || '') + return conn.y.db.whenTransactionsFinished().then(() => { + // send sync step 2 + conn.y.db.requestTransaction(function * () { + encoder.writeVarString('sync step 2') + encoder.writeVarString(conn.authInfo || '') - if (preferUntransformed) { - encoder.writeUint8(1) - yield * this.writeOperationsUntransformed(encoder) - } else { - encoder.writeUint8(0) - yield * this.writeOperations(encoder, decoder) - } + if (preferUntransformed) { + encoder.writeUint8(1) + yield * this.writeOperationsUntransformed(encoder) + } else { + encoder.writeUint8(0) + yield * this.writeOperations(encoder, decoder) + } - yield * this.writeDeleteSet(encoder) - conn.send(senderConn.uid, encoder.createBuffer()) - senderConn.receivedSyncStep2 = true + yield * this.writeDeleteSet(encoder) + conn.send(senderConn.uid, encoder.createBuffer()) + senderConn.receivedSyncStep2 = true + }) + return conn.y.db.whenTransactionsFinished().then(() => { + if (conn.role === 'slave') { + sendSyncStep1(conn, sender) + } + }) }) - if (conn.role === 'slave') { - sendSyncStep1(conn, sender) - } - return conn.y.db.whenTransactionsFinished() } export function logSS (decoder, strBuilder) {