diff --git a/src/adb/sync.ts b/src/adb/sync.ts index 66b9a94d..fda1b4da 100644 --- a/src/adb/sync.ts +++ b/src/adb/sync.ts @@ -188,10 +188,10 @@ export default class Sync extends EventEmitter { const track = () => transfer.pop(); const writeNext = () => { let chunk: Buffer; - if ((chunk = stream.read(DATA_MAX_LENGTH) || stream.read())) { + if (!this.connection.socket.writableNeedDrain && (chunk = stream.read(DATA_MAX_LENGTH) || stream.read())) { this._sendCommandWithLength(Protocol.DATA, chunk.length); transfer.push(chunk.length); - if (this.connection.write(chunk, track)) { + if (!this.connection.write(chunk, track).socket.writableNeedDrain) { return writeNext(); } else { return waitForDrain().then(writeNext);