Improve performance of reading from sync process

This commit is contained in:
Ben Gotow 2017-07-06 12:13:35 -07:00
parent 8afda8e3d4
commit 11579546a2

View file

@ -54,7 +54,7 @@ export default class MailsyncProcess extends EventEmitter {
buffer += data; buffer += data;
}); });
this._proc.on('error', (err) => { this._proc.on('error', (err) => {
reject(err, buffer); reject(err);
}); });
this._proc.on('close', (code) => { this._proc.on('close', (code) => {
console.log(`SyncWorker exited mode ${mode} with code ${code}`); console.log(`SyncWorker exited mode ${mode} with code ${code}`);
@ -64,7 +64,7 @@ export default class MailsyncProcess extends EventEmitter {
if (code === 0) { if (code === 0) {
resolve(response); resolve(response);
} else { } else {
reject(new Error(LocalizedErrorStrings[response.error])) reject(new Error(LocalizedErrorStrings[response.error] || response.error))
} }
} catch (err) { } catch (err) {
reject(err); reject(err);
@ -81,10 +81,14 @@ export default class MailsyncProcess extends EventEmitter {
this._spawnProcess('sync'); this._spawnProcess('sync');
let buffer = ""; let buffer = "";
this._proc.stdout.on('data', (data) => { this._proc.stdout.on('data', (data) => {
buffer += data.toString(); const added = data.toString();
buffer += added;
if (added.indexOf('\n') !== -1) {
const msgs = buffer.split('\n'); const msgs = buffer.split('\n');
buffer = msgs.pop(); buffer = msgs.pop();
this.emit('deltas', msgs); this.emit('deltas', msgs);
}
}); });
this._proc.stderr.on('data', (data) => { this._proc.stderr.on('data', (data) => {
console.log("Sync worker wrote to stderr: " + data.toString()); console.log("Sync worker wrote to stderr: " + data.toString());