napi data释放问题 ,在调用napi_call_threadsafe_function 时,最后一个参数传入了void *data

在调用napi_call_threadsafe_function 时,最后一个参数传入了void *data,

在调用napi_release_threadsafe_function之后,队列中没有执行的任务无法释放这些data,这个有什么好的方式来释放


HarmonyOS
2024-05-10 21:53:49
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
鸡翅可乐

建议在napi_call_threadsafe_function 调用完promis 后delete data, CallJs_func 不delete

args = (void *)args_st; 
napi_status status = napi_call_threadsafe_function(callbackData->tsfn, args, napi_tsfn_nonblocking); 
if (status != napi_ok) { 
  delete args_st; 
  return std::pair<int, int32_t>(status, int32_t()); 
} 
int32_t ret; 
if (sync == MNAPI_SYNC) { 
  ret = promise_ret.get_future().get(); 
} 
 
args.syncFlag = sync // 区分下同步异步 
args = (void *)args_st; 
napi_status status = napi_call_threadsafe_function(callbackData->tsfn, args, napi_tsfn_nonblocking); 
if (status != napi_ok) { 
  delete args_st; 
  return std::pair<int, int32_t>(status, int32_t()); 
} 
int32_t ret; 
if (sync == MNAPI_SYNC) { 
  ret = promise_ret.get_future().get(); 
 
}
分享
微博
QQ
微信
回复
2024-05-11 11:15:54
相关问题
HarmonyOS调用napi_call_function方法崩溃
630浏览 • 1回复 待解决
undefined symbol napi_create_threadsafe_function
4472浏览 • 1回复 待解决
HarmonyOS NAPI调用HAR模块失败
530浏览 • 1回复 待解决
HarmonyOS NAPI调用ArkTS的静态方法
590浏览 • 1回复 待解决
NAPI跨线程调用TS线程函数
1240浏览 • 1回复 待解决
event.data.isRequestGesture()返回值问题
839浏览 • 1回复 待解决