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
按赞同
/
按时间
towerwan

建议在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
相关问题
undefined symbol napi_create_threadsafe_function
2722浏览 • 1回复 待解决
NAPI跨线程调用TS线程函数
383浏览 • 1回复 待解决
Data Guard Kit权限获取
546浏览 • 1回复 待解决
event.data.isRequestGesture()返回值问题
330浏览 • 1回复 待解决
mysql load data infile
1834浏览 • 1回复 待解决
NAPI执行上层回调,如何获取env
679浏览 • 1回复 待解决
关于clog和data问题有知道的吗?
1880浏览 • 1回复 待解决