



























@@ -247,15 +247,28 @@ describe("models-config write serialization", () => {
247247248248let inFlightWrites = 0;
249249let maxInFlightWrites = 0;
250+let markFirstModelsWriteStarted: () => void = () => {};
251+const firstModelsWriteStarted = new Promise<void>((resolve) => {
252+markFirstModelsWriteStarted = resolve;
253+});
254+let releaseModelsWrites: () => void = () => {};
255+const modelsWritesCanContinue = new Promise<void>((resolve) => {
256+releaseModelsWrites = resolve;
257+});
258+let modelsWriteCount = 0;
250259writePrivateStoreTextWriteMock.mockImplementation(
251260async (params: { filePath: string; rootDir: string; content: string | Uint8Array }) => {
252261const isModelsWrite = path.basename(params.filePath) === "models.json";
253262if (isModelsWrite) {
263+modelsWriteCount += 1;
254264inFlightWrites += 1;
255265if (inFlightWrites > maxInFlightWrites) {
256266maxInFlightWrites = inFlightWrites;
257267}
258-await new Promise((resolve) => setTimeout(resolve, 10));
268+if (modelsWriteCount === 1) {
269+markFirstModelsWriteStarted();
270+}
271+await modelsWritesCanContinue;
259272}
260273try {
261274if (!actualPrivateFileStore) {
@@ -273,7 +286,14 @@ describe("models-config write serialization", () => {
273286},
274287);
275288276-await Promise.all([ensureOpenClawModelsJson(first), ensureOpenClawModelsJson(second)]);
289+const writes = Promise.all([
290+ensureOpenClawModelsJson(first),
291+ensureOpenClawModelsJson(second),
292+]);
293+await firstModelsWriteStarted;
294+await Promise.resolve();
295+releaseModelsWrites();
296+await writes;
277297278298expect(maxInFlightWrites).toBe(1);
279299const parsed = await readGeneratedModelsJson<{
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。