MCPcopy Create free account
hub / github.com/apache/arrow / AddCallback

Method AddCallback

cpp/src/arrow/util/future.cc:50–69  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

48 }
49
50 void AddCallback(Callback callback, CallbackOptions opts) {
51 CheckOptions(opts);
52 std::unique_lock<std::mutex> lock(mutex_);
53#ifdef ARROW_WITH_OPENTELEMETRY
54 callback = [func = std::move(callback),
55 active_span = ::arrow::internal::tracing::GetTracer()->GetCurrentSpan()](
56 const FutureImpl& impl) mutable {
57 auto scope = ::arrow::internal::tracing::GetTracer()->WithActiveSpan(active_span);
58 std::move(func)(impl);
59 };
60#endif
61 CallbackRecord callback_record{std::move(callback), opts};
62 if (IsFutureFinished(state_)) {
63 lock.unlock();
64 RunOrScheduleCallback(shared_from_this(), std::move(callback_record),
65 /*in_add_callback=*/true);
66 } else {
67 callbacks_.push_back(std::move(callback_record));
68 }
69 }
70
71 bool TryAddCallback(const std::function<Callback()>& callback_factory,
72 CallbackOptions opts) {

Callers

nothing calls this directly

Calls 4

GetTracerFunction · 0.85
IsFutureFinishedFunction · 0.85
push_backMethod · 0.80
CheckOptionsFunction · 0.50

Tested by

no test coverage detected