前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >郁闷了,miniblink的electron接口必须使用多进程模式了

郁闷了,miniblink的electron接口必须使用多进程模式了

作者头像
龙泉寺扫地僧
发布2019-02-20 10:48:03
1.2K0
发布2019-02-20 10:48:03
举报
文章被收录于专栏:盟主来了盟主来了

最近miniblink的electron模式开发本来一切顺利,但昨天遇到一个大坑。

electron里主进程和渲染进程是分开的,在miniblink的electron模式里是使用多线程模拟的,每个线程都有自己的v8 context。本来一切ok,但

在跑vscode的时候,发现一处大坑!

vscode的node_modules\gc-signals  模块,是个native 模块,vscode在导入一个文件夹的时候,会重启整个渲染进程,这样gc-signals 也会被重新加载一遍,重新在native层注册各种V8里的函数。这在多进程下没问题,每次重新加载时会重启一个新进程,重新注册v8函数。

而多线程模拟的就不行了。如果每次重新调用注册函数,gc-signals 里由于native代码用到了全局变量,全局变量是会被反复初始化的。这就尴尬了,有些如uv_mutex_t是不能重复初始化的。

目前想来想去,只能搞过架构大重构了,把之前精心设计、精巧简单的单进程多线程模式改造成多进程了,然而,多进程调试起来麻烦多了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年04月16日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档