Skip to content

Commit add86c1

Browse files
committed
fix bug
1 parent 7ecb179 commit add86c1

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed

packages/editor/src/models/TypeCellCodeModel.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ export class TypeCellCodeModel extends lifecycle.Disposable {
7878

7979
private disposeMonacoModel() {
8080
if (this.monacoModelReferences > 0) {
81-
throw new Error("disposing TypeCellCodeModel, but still has references");
81+
// This is suspicious, happens when compiling code and releasing at same time?
82+
console.error("disposing TypeCellCodeModel, but still has references");
8283
}
8384

8485
if (

packages/editor/src/runtime/compiler/compilers/MonacoCompiler.ts

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -121,21 +121,24 @@ async function _compile(
121121
}
122122

123123
console.log("recompile", model.path);
124-
const monacoModel = model.acquireMonacoModel();
125124

126-
if (!mainWorker) {
127-
mainWorker =
128-
await monacoInstance.languages.typescript.getTypeScriptWorker();
129-
}
125+
const monacoModel = model.acquireMonacoModel();
126+
try {
127+
if (!mainWorker) {
128+
mainWorker =
129+
await monacoInstance.languages.typescript.getTypeScriptWorker();
130+
}
130131

131-
let compiledCode = (await getCompiledCode(mainWorker, monacoModel.uri))
132-
.firstJSCode;
133-
model.releaseMonacoModel();
134-
if (ENABLE_CACHE) {
135-
saveCachedItem(model, { hash: hsh, compiledCode });
132+
let compiledCode = (await getCompiledCode(mainWorker, monacoModel.uri))
133+
.firstJSCode;
134+
if (ENABLE_CACHE) {
135+
saveCachedItem(model, { hash: hsh, compiledCode });
136+
}
137+
// console.log(tscode, compiledCode);
138+
return compiledCode;
139+
} finally {
140+
model.releaseMonacoModel();
136141
}
137-
// console.log(tscode, compiledCode);
138-
return compiledCode;
139142
}
140143

141144
export const compile = awaitFirst(_compile);

0 commit comments

Comments
 (0)