arrow::Status check_local_session_error()

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);
		}
	}