Skip to content

Commit

Permalink
feat(adb): expose read blocking debugging option
Browse files Browse the repository at this point in the history
  • Loading branch information
yume-chan committed Nov 15, 2023
1 parent 336e0ff commit 9cd6fb9
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 10 deletions.
3 changes: 2 additions & 1 deletion libraries/adb/src/daemon/dispatcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ export interface AdbPacketDispatcherOptions {
* Whether to preserve the connection open after the `AdbPacketDispatcher` is closed.
*/
preserveConnection?: boolean | undefined;
debugSlowRead?: boolean | undefined;
}

/**
Expand Down Expand Up @@ -229,7 +230,7 @@ export class AdbPacketDispatcher implements Closeable {
let handled = false;
await Promise.race([
delay(5000).then(() => {
if (!handled) {
if (this.options.debugSlowRead && !handled) {
throw new Error(
`packet for \`${socket.service}\` not handled in 5 seconds`,
);
Expand Down
16 changes: 7 additions & 9 deletions libraries/adb/src/daemon/transport.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ interface AdbDaemonAuthenticationOptions {
* Whether to preserve the connection open after the `AdbDaemonTransport` is closed.
*/
preserveConnection?: boolean | undefined;
debugSlowRead?: boolean | undefined;
}

interface AdbDaemonSocketConnectorConstructionOptions {
Expand All @@ -53,6 +54,7 @@ interface AdbDaemonSocketConnectorConstructionOptions {
* Whether to preserve the connection open after the `AdbDaemonTransport` is closed.
*/
preserveConnection?: boolean | undefined;
debugSlowRead?: boolean | undefined;
}

export class AdbDaemonTransport implements AdbTransport {
Expand All @@ -69,7 +71,7 @@ export class AdbDaemonTransport implements AdbTransport {
connection,
credentialStore,
authenticators = ADB_DEFAULT_AUTHENTICATORS,
preserveConnection,
...options
}: AdbDaemonAuthenticationOptions): Promise<AdbDaemonTransport> {
// Initially, set to highest-supported version and payload size.
let version = 0x01000001;
Expand Down Expand Up @@ -193,7 +195,7 @@ export class AdbDaemonTransport implements AdbTransport {
version,
maxPayloadSize,
banner,
preserveConnection,
...options,
});
}

Expand All @@ -214,9 +216,8 @@ export class AdbDaemonTransport implements AdbTransport {
return this.#protocolVersion;
}

#maxPayloadSize: number;
get maxPayloadSize() {
return this.#maxPayloadSize;
return this.#dispatcher.options.maxPayloadSize;
}

#banner: AdbBanner;
Expand All @@ -232,9 +233,8 @@ export class AdbDaemonTransport implements AdbTransport {
serial,
connection,
version,
maxPayloadSize,
banner,
preserveConnection,
...options
}: AdbDaemonSocketConnectorConstructionOptions) {
this.#serial = serial;
this.#connection = connection;
Expand All @@ -253,12 +253,10 @@ export class AdbDaemonTransport implements AdbTransport {
this.#dispatcher = new AdbPacketDispatcher(connection, {
calculateChecksum,
appendNullToServiceString,
maxPayloadSize,
preserveConnection,
...options,
});

this.#protocolVersion = version;
this.#maxPayloadSize = maxPayloadSize;
}

connect(service: string): ValueOrPromise<AdbSocket> {
Expand Down

0 comments on commit 9cd6fb9

Please sign in to comment.