Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
ec91297c
V
vscode
项目概览
xxadev
/
vscode
与 Fork 源项目一致
从无法访问的项目Fork
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vscode
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ec91297c
编写于
1月 12, 2018
作者:
B
Benjamin Pasero
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
better fix for #41322
上级
26266020
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
31 addition
and
21 deletion
+31
-21
src/vs/workbench/electron-browser/shell.ts
src/vs/workbench/electron-browser/shell.ts
+2
-12
src/vs/workbench/parts/logs/electron-browser/logs.contribution.ts
...orkbench/parts/logs/electron-browser/logs.contribution.ts
+1
-1
src/vs/workbench/services/extensions/electron-browser/extensionService.ts
.../services/extensions/electron-browser/extensionService.ts
+28
-8
未找到文件。
src/vs/workbench/electron-browser/shell.ts
浏览文件 @
ec91297c
...
...
@@ -182,22 +182,12 @@ export class WorkbenchShell {
try
{
const
workbench
=
instantiationService
.
createInstance
(
Workbench
,
parent
,
workbenchContainer
,
this
.
configuration
,
serviceCollection
,
this
.
lifecycleService
);
// Delay the "Restoring" phase for a bit to give our viewlet/editor/panels a faster startup
let
restorePhaseTimeoutHandle
=
setTimeout
(()
=>
{
restorePhaseTimeoutHandle
=
void
0
;
this
.
lifecycleService
.
phase
=
LifecyclePhase
.
Restoring
;
},
800
);
// Set lifecycle phase to `Restoring`
this
.
lifecycleService
.
phase
=
LifecyclePhase
.
Restoring
;
// Startup Workbench
workbench
.
startup
().
done
(
startupInfos
=>
{
// Set lifecycle phase to restoring if we started up fast enough and to
// make sure to trigger contributions on this phase if any
if
(
restorePhaseTimeoutHandle
)
{
clearTimeout
(
restorePhaseTimeoutHandle
);
this
.
lifecycleService
.
phase
=
LifecyclePhase
.
Restoring
;
}
// Set lifecycle phase to `Runnning` so that other contributions can now do something
this
.
lifecycleService
.
phase
=
LifecyclePhase
.
Running
;
...
...
src/vs/workbench/parts/logs/electron-browser/logs.contribution.ts
浏览文件 @
ec91297c
...
...
@@ -35,7 +35,7 @@ class LogOutputChannels extends Disposable implements IWorkbenchContribution {
}
}
Registry
.
as
<
IWorkbenchContributionsRegistry
>
(
WorkbenchExtensions
.
Workbench
).
registerWorkbenchContribution
(
LogOutputChannels
,
LifecyclePhase
.
R
estor
ing
);
Registry
.
as
<
IWorkbenchContributionsRegistry
>
(
WorkbenchExtensions
.
Workbench
).
registerWorkbenchContribution
(
LogOutputChannels
,
LifecyclePhase
.
R
unn
ing
);
const
workbenchActionsRegistry
=
Registry
.
as
<
IWorkbenchActionRegistry
>
(
WorkbenchActionExtensions
.
WorkbenchActions
);
const
devCategory
=
nls
.
localize
(
'
developer
'
,
"
Developer
"
);
...
...
src/vs/workbench/services/extensions/electron-browser/extensionService.ts
浏览文件 @
ec91297c
...
...
@@ -119,16 +119,36 @@ export class ExtensionService extends Disposable implements IExtensionService {
this
.
_extensionHostProcessCustomers
=
[];
this
.
_extensionHostProcessProxy
=
null
;
this
.
startDelayed
(
lifecycleService
);
}
private
startDelayed
(
lifecycleService
:
ILifecycleService
):
void
{
let
started
=
false
;
const
startOnce
=
()
=>
{
if
(
!
started
)
{
started
=
true
;
this
.
_startExtensionHostProcess
([]);
this
.
_scanAndHandleExtensions
();
}
};
// delay extension host creation and extension scanning
// until the workbench is restoring. we cannot defer the
// extension host more (LifecyclePhase.Running) because
// some editors require the extension host to restore
// and this would result in a deadlock
// see https://github.com/Microsoft/vscode/issues/41322
lifecycleService
.
when
(
LifecyclePhase
.
Restoring
).
then
(()
=>
{
// delay extension host creation and extension scanning
// until the workbench is restoring. we cannot defer the
// extension host more (LifecyclePhase.Running) because
// some editors require the extension host to restore
// and this would result in a deadlock
// see https://github.com/Microsoft/vscode/issues/41322
this
.
_startExtensionHostProcess
([]);
this
.
_scanAndHandleExtensions
();
// we add an additional delay of 800ms because the extension host
// starting is a potential expensive operation and we do no want
// to fight with editors, viewlets and panels restoring.
setTimeout
(()
=>
startOnce
(),
800
);
});
// if we are running before the 800ms delay, make sure to start
// the extension host right away though.
lifecycleService
.
when
(
LifecyclePhase
.
Running
).
then
(()
=>
startOnce
());
}
public
dispose
():
void
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录