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

Method on_error

cpp/src/arrow/c/bridge.cc:2674–2699  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2672 }
2673
2674 static void on_error(ArrowAsyncDeviceStreamHandler* self, int code, const char* message,
2675 const char* metadata) {
2676 auto* private_data = reinterpret_cast<PrivateData*>(self->private_data);
2677 std::string message_str, metadata_str;
2678 if (message != nullptr) {
2679 message_str = message;
2680 }
2681 if (metadata != nullptr) {
2682 metadata_str = metadata;
2683 }
2684
2685 Status error = Status::FromDetailAndArgs(
2686 StatusCode::UnknownError,
2687 std::make_shared<AsyncErrorDetail>(code, message_str, std::move(metadata_str)),
2688 std::move(message_str));
2689
2690 if (!private_data->fut_iterator_.is_finished()) {
2691 private_data->fut_iterator_.MarkFinished(error);
2692 return;
2693 }
2694
2695 std::unique_lock<std::mutex> lock(private_data->state_->mutex_);
2696 private_data->state_->error_ = std::move(error);
2697 lock.unlock();
2698 private_data->state_->cv_.notify_one();
2699 }
2700
2701 static void release(ArrowAsyncDeviceStreamHandler* self) {
2702 delete reinterpret_cast<PrivateData*>(self->private_data);

Callers 1

Calls 3

FromDetailAndArgsFunction · 0.85
is_finishedMethod · 0.45
MarkFinishedMethod · 0.45

Tested by

no test coverage detected