in src/afs.cc [2477:2501]
arrow::Status check_local_session_error(LocalSessionData* localSession,
bool locked = false)
{
if (!localSession->errorMessage.has_value())
{
return arrow::Status::OK();
}
if (locked)
{
auto errorMessage = std::move(localSession->errorMessage.value());
localSession->errorMessage = std::nullopt;
return arrow::Status::Invalid(errorMessage);
}
else
{
std::lock_guard<std::mutex> lock(mutex_);
if (!localSession->errorMessage.has_value())
{
return arrow::Status::OK();
}
auto errorMessage = std::move(localSession->errorMessage.value());
localSession->errorMessage = std::nullopt;
return arrow::Status::Invalid(errorMessage);
}
}