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

Method on_error

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

Source from the content-addressed store, hash-verified

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