Lines Matching refs:callbackInfo

65         std::shared_ptr<AsyncCallbackInfo> callbackInner = eventDataInner->callbackInfo;
108 auto callbackInfoInner = eventDataInner->callbackInfo;
188 eventDataWorker->callbackInfo = (*it);
195 static void UpdateOnceFlag(std::shared_ptr<AsyncCallbackInfo>callbackInfo, bool once)
198 if (callbackInfo->once) {
200 callbackInfo->once = false;
205 if (callbackInfo->once) {
209 callbackInfo->once = true;
221 for (auto callbackInfo = iter->second.begin(); callbackInfo != iter->second.end();) {
223 if ((*callbackInfo)->env != env) {
224 ++callbackInfo;
227 napi_get_reference_value((*callbackInfo)->env, (*callbackInfo)->callback, &callback);
231 ++callbackInfo;
234 (*callbackInfo)->isDeleted = true;
235 callbackInfo = iter->second.erase(callbackInfo);
248 for (auto callbackInfo : subscribe->second) {
250 if (callbackInfo->isDeleted) {
253 if (callbackInfo->env != env) {
256 napi_get_reference_value(callbackInfo->env, callbackInfo->callback, &callback);
262 return callbackInfo;
304 void ReleaseCallbackInfo(AsyncCallbackInfo* callbackInfo)
306 if (callbackInfo != nullptr) {
308 if (napi_get_uv_event_loop(callbackInfo->env, &loop) != napi_ok) {
309 delete callbackInfo;
310 callbackInfo = nullptr;
315 delete callbackInfo;
316 callbackInfo = nullptr;
319 work->data = reinterpret_cast<void*>(callbackInfo);
322 AsyncCallbackInfo* callbackInfo = reinterpret_cast<AsyncCallbackInfo*>(work->data);
323 if (napi_delete_reference(callbackInfo->env, callbackInfo->callback) != napi_ok) {
326 napi_release_threadsafe_function(callbackInfo->tsfn, napi_tsfn_release);
327 delete callbackInfo;
328 callbackInfo = nullptr;
333 delete callbackInfo;
334 callbackInfo = nullptr;
368 auto callbackInfo = SearchCallbackInfo(env, eventIdValue, argv[1]);
369 if (callbackInfo != nullptr) {
370 UpdateOnceFlag(callbackInfo, once);
372 callbackInfo = std::shared_ptr<AsyncCallbackInfo>(new (std::nothrow) AsyncCallbackInfo(),
373 [](AsyncCallbackInfo* callbackInfo) {
374 ReleaseCallbackInfo(callbackInfo);
376 if (!callbackInfo) {
380 callbackInfo->env = env;
381 callbackInfo->once = once;
382 callbackInfo->eventId = eventIdValue;
383 napi_create_reference(env, argv[1], 1, &callbackInfo->callback);
384 napi_wrap(env, argv[1], new (std::nothrow) std::weak_ptr<AsyncCallbackInfo>(callbackInfo),
395 nullptr, ThreadSafeCallback, &(callbackInfo->tsfn));
396 emitterInstances[eventIdValue].insert(callbackInfo);
473 for (auto callbackInfo : iter->second) {
474 callbackInfo->isDeleted = true;