Skip to content

Commit e19b292

Browse files
committed
ensure responses for service can waitForInterest
1 parent 221d97c commit e19b292

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

src/packages/backend/conat/test/core/services.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
connect,
99
delay,
1010
} from "@cocalc/backend/conat/test/setup";
11-
import { Client, type Message } from "@cocalc/conat/core/client";
11+
import type { Client, Message } from "@cocalc/conat/core/client";
1212
import { wait } from "@cocalc/backend/conat/test/util";
1313

1414
beforeAll(before);

src/packages/conat/core/client.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -604,10 +604,9 @@ export class Client extends EventEmitter {
604604
);
605605
}
606606
timeout = Math.min(timeout, MAX_INTEREST_TIMEOUT);
607-
const response = await this.conn.timeout(timeout ? timeout : 10000).emitWithAck(
608-
"wait-for-interest",
609-
{ subject, timeout },
610-
);
607+
const response = await this.conn
608+
.timeout(timeout ? timeout : 10000)
609+
.emitWithAck("wait-for-interest", { subject, timeout });
611610
if (response.error) {
612611
throw new ConatError(response.error, { code: response.code });
613612
}
@@ -1083,9 +1082,14 @@ export class Client extends EventEmitter {
10831082
throw Error(`${name} not defined`);
10841083
}
10851084
const result = await f.apply(mesg, args);
1086-
mesg.respondSync(result);
1085+
// use await mesg.respond so waitForInterest is on, which is almost always
1086+
// good for services.
1087+
await mesg.respond(result);
10871088
} catch (err) {
1088-
mesg.respondSync(null, { headers: { error: `${err}` } });
1089+
await mesg.respond(null, {
1090+
noThrow: true, // we're not catching this one
1091+
headers: { error: `${err}` },
1092+
});
10891093
}
10901094
};
10911095
const loop = async () => {

0 commit comments

Comments
 (0)