[错误]: 关机检查点内的 UI 广播失败会取消退出,实际原因会写入丢弃的 stdout
□ 总结
由于#16497(STA-5505)登陆了检查站故障土司,一个故障的关闭检查站是可以恢复的——你得到**"退出被取消:会话快照无法被保存(卸下前没有舞台渲染器状态. )"**,而第二个"CmdQQ"会退化为持久会话仅限阶段并退出. 这比15783的永久惰性窗口有了真正的改善。
这条道路上还存在两个缺陷:
- *Stage是一无所有或一无所有,它包括不耐久的工作。 ** " store.updateUI(args.ui) " 与会场相同运行在 " try " 内,它同步地向接触 * 其他窗口 的UI-change听众倾斜。 任何听众的一发一发——纯粹的副作用,快照已经安全地制作——返回`OK:虚假'并否决退出。
- ** 将真正原因命名的一行是无法到达的。 **
Console.error ('[app])在卸下前未进行舞台渲染器状态:',出错'仅进入主进程 stdout,该程序被丢弃用于Finder所发射的应用程序. 使用者被留下一个道具来命名病因消失时的症状——确切的故障模式#16497开始修复.
** 环境:** Orca 1.4.197-macOS(达尔温25.5.0,arm64)
姊妹关系 #15783(仍在开放),涵盖#16497前的硬锁和相同的"orca-data.json"触发器. 这个问题是这个家庭比较狭窄的活活活的部分。
□ 缺陷 1 — UI 广播可以否决持久快照
`弧/主/ipc/投降-shutdown-检查点.ts:49':
ipcMain.on ('app: stage- before-unload-sync', (event, args: Stage Before Unload SyncArgs) { 页面存档备份,存于互联网档案馆 (简体中文) 让 OK = 真实 尝试{ 用于 (const { state, hostId } of args.sessions) { start. Workspace Session BeforeUnload(状态、主机) (d) 国家 {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? store.updateUI(args.ui) // QQ副作用广播, 相同尝试 捕捉(反射){ cope.error ("'[app]") 卸载前舞台渲染器状态失败 : “, 出错 ) ưμ㼯A {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? 等待检查点= OK ? 冲出 State With Deadline( 仓库) : promise. resolve( { ok: falth }) 返回值 = {好 } ) (中文(简体) ).
`更新UI'-`更新UI'-`通知UICHANGED'(`src/main/persistence/loading-store/profile-friends.ts:144'),向听众发出**没有每个听众的警卫**:
导出函数通知 UICHanged( 拥有者: 配置首选项): 无效 {
if (所有者[ profilePreferences Context]. runtime. uiCchange listeners. small * * 0) {
返回时
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
const ui = 业主. getUI ()
用于(所有者的收听者[profilePreferences Context].runtime.uiCchange listeners) {
收听器( ui) / /%% 1 丢出启动
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
{\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
两个注册的听众都伸入其他窗口,只看守 " window.isDestroyed () " ,而不是 " webContents.isDestroyed () " :
crc/main/ipc/ui.ts:54'-窗口.webContents.send ('ui: State Cchanged', ui)跨越每一个浏览器Window''src/main/window/dashboard-poupout-window.ts:210'-window.webContents.setZoom Level(级别)'
在退出期间,这两个州存在分歧:webContents'可以销毁,而webContents'则可以销毁。
. . . . . . .
内容来源: stablyai/orca