Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
xxadev
vscode
提交
e9167751
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,发现更多精彩内容 >>
未验证
提交
e9167751
编写于
1月 22, 2020
作者:
S
Sandeep Somavarapu
提交者:
GitHub
1月 22, 2020
浏览文件
操作
浏览文件
下载
差异文件
Introduce storage main service in shared process (#89040)
Introduce storage main service in shared process
上级
ee803826
02b0532a
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
20 addition
and
11 deletion
+20
-11
src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
.../code/electron-browser/sharedProcess/sharedProcessMain.ts
+11
-2
src/vs/platform/storage/node/storageService.ts
src/vs/platform/storage/node/storageService.ts
+9
-9
未找到文件。
src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts
浏览文件 @
e9167751
...
...
@@ -62,6 +62,9 @@ import { KeytarCredentialsService } from 'vs/platform/credentials/node/credentia
import
{
UserDataAutoSync
}
from
'
vs/platform/userDataSync/electron-browser/userDataAutoSync
'
;
import
{
SettingsSynchroniser
}
from
'
vs/platform/userDataSync/common/settingsSync
'
;
import
{
UserDataAuthTokenService
}
from
'
vs/platform/userDataSync/common/userDataAuthTokenService
'
;
import
{
GlobalStorageDatabaseChannelClient
}
from
'
vs/platform/storage/node/storageIpc
'
;
import
{
NativeStorageService
}
from
'
vs/platform/storage/node/storageService
'
;
import
{
IStorageService
}
from
'
vs/platform/storage/common/storage
'
;
export
interface
ISharedProcessConfiguration
{
readonly
machineId
:
string
;
...
...
@@ -113,10 +116,18 @@ async function main(server: Server, initData: ISharedProcessInitData, configurat
disposables
.
add
(
logService
);
logService
.
info
(
'
main
'
,
JSON
.
stringify
(
configuration
));
const
mainProcessService
=
new
MainProcessService
(
server
,
mainRouter
);
services
.
set
(
IMainProcessService
,
mainProcessService
);
const
configurationService
=
new
ConfigurationService
(
environmentService
.
settingsResource
);
disposables
.
add
(
configurationService
);
await
configurationService
.
initialize
();
const
storageService
=
new
NativeStorageService
(
new
GlobalStorageDatabaseChannelClient
(
mainProcessService
.
getChannel
(
'
storage
'
)),
logService
,
environmentService
);
await
storageService
.
initialize
();
services
.
set
(
IStorageService
,
storageService
);
disposables
.
add
(
toDisposable
(()
=>
storageService
.
flush
()));
services
.
set
(
IEnvironmentService
,
environmentService
);
services
.
set
(
IProductService
,
{
_serviceBrand
:
undefined
,
...
product
});
services
.
set
(
ILogService
,
logService
);
...
...
@@ -124,8 +135,6 @@ async function main(server: Server, initData: ISharedProcessInitData, configurat
services
.
set
(
IRequestService
,
new
SyncDescriptor
(
RequestService
));
services
.
set
(
ILoggerService
,
new
SyncDescriptor
(
LoggerService
));
const
mainProcessService
=
new
MainProcessService
(
server
,
mainRouter
);
services
.
set
(
IMainProcessService
,
mainProcessService
);
const
electronService
=
createChannelSender
<
IElectronService
>
(
mainProcessService
.
getChannel
(
'
electron
'
),
{
context
:
configuration
.
windowId
});
services
.
set
(
IElectronService
,
electronService
);
...
...
src/vs/platform/storage/node/storageService.ts
浏览文件 @
e9167751
...
...
@@ -58,7 +58,7 @@ export class NativeStorageService extends Disposable implements IStorageService
this
.
_onDidChangeStorage
.
fire
({
key
,
scope
});
}
initialize
(
payload
:
IWorkspaceInitializationPayload
):
Promise
<
void
>
{
initialize
(
payload
?
:
IWorkspaceInitializationPayload
):
Promise
<
void
>
{
if
(
!
this
.
initializePromise
)
{
this
.
initializePromise
=
this
.
doInitialize
(
payload
);
}
...
...
@@ -66,12 +66,12 @@ export class NativeStorageService extends Disposable implements IStorageService
return
this
.
initializePromise
;
}
private
async
doInitialize
(
payload
:
IWorkspaceInitializationPayload
):
Promise
<
void
>
{
private
async
doInitialize
(
payload
?
:
IWorkspaceInitializationPayload
):
Promise
<
void
>
{
// Init all storage locations
await
Promise
.
all
([
this
.
initializeGlobalStorage
(),
this
.
initializeWorkspaceStorage
(
payload
)
payload
?
this
.
initializeWorkspaceStorage
(
payload
)
:
Promise
.
resolve
(
)
]);
// On some OS we do not get enough time to persist state on shutdown (e.g. when
...
...
@@ -196,6 +196,10 @@ export class NativeStorageService extends Disposable implements IStorageService
this
.
getStorage
(
scope
).
delete
(
key
);
}
private
getStorage
(
scope
:
StorageScope
):
IStorage
{
return
assertIsDefined
(
scope
===
StorageScope
.
GLOBAL
?
this
.
globalStorage
:
this
.
workspaceStorage
);
}
private
doFlushWhenIdle
():
void
{
// Dispose any previous idle runner
...
...
@@ -227,15 +231,11 @@ export class NativeStorageService extends Disposable implements IStorageService
// Do it
await
Promise
.
all
([
this
.
g
etStorage
(
StorageScope
.
GLOBAL
)
.
close
(),
this
.
getStorage
(
StorageScope
.
WORKSPACE
).
clos
e
()
this
.
g
lobalStorage
.
close
(),
this
.
workspaceStorage
?
this
.
workspaceStorage
.
close
()
:
Promise
.
resolv
e
()
]);
}
private
getStorage
(
scope
:
StorageScope
):
IStorage
{
return
assertIsDefined
(
scope
===
StorageScope
.
GLOBAL
?
this
.
globalStorage
:
this
.
workspaceStorage
);
}
async
logStorage
():
Promise
<
void
>
{
const
[
workspaceStorage
,
workspaceStoragePath
]
=
assertAllDefined
(
this
.
workspaceStorage
,
this
.
workspaceStoragePath
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录