diff --git a/lib/core/md_yaml_doc_loader.dart b/lib/core/md_yaml_doc_loader.dart index e75ad0bf..661b42b4 100644 --- a/lib/core/md_yaml_doc_loader.dart +++ b/lib/core/md_yaml_doc_loader.dart @@ -14,10 +14,14 @@ class MdYamlDocLoader { var _loadingLock = Lock(); Future _initIsolate() async { - if (_isolate != null) return; + if (_isolate != null && _sendPort != null) return; return await _loadingLock.synchronized(() async { - if (_isolate != null) return; + if (_isolate != null && _sendPort != null) return; + if (_isolate != null) { + _isolate.kill(priority: Isolate.immediate); + _isolate = null; + } _isolate = await Isolate.spawn(_isolateMain, _receivePort.sendPort); var data = await _receivePort.first;