kihlh / hmc-win32

HMC Easier Access to System APIs 简化连接winapi的过程的node c++模块
https://kihlh.gitbook.io/hmc/
MIT License
85 stars 11 forks source link

对异步函数 冲突的程序返回PromiseSession 任务 而不是直接报错 以此实现 Promise函数不分离调用 #31

Closed kihlh closed 11 months ago

kihlh commented 11 months ago

以下几种情况下都会导致会导致异步工作环境竞态冲突和无法释放工作内存 导致进程奔溃 napi_create_async_work

https://github.com/nodejs/node/blob/main/src/node_api.cc#L2871 https://github.com/nodejs/node/issues/13512 https://github.com/nodejs/node-addon-api/blob/main/napi-inl.h#L5116

kihlh commented 11 months ago

napi不支持 同个异步函数同时并发,会导致竞态冲突和无法释放工作内存 导致进程意外的退出,所以我拦截了重复的async请求 所以使用 PromiseSession 来实现异步的同步并发 Promise任务来实现快速执行

image image image

kihlh commented 11 months ago

而 PromiseSession 使用的是同步io获取结果 内容生产者由异步控制

kihlh commented 11 months ago