in squangle/mysql_client/AsyncConnectionPool.cpp [200:231]
std::shared_ptr<ConnectOperation> AsyncConnectionPool::beginConnection(
const std::string& host,
int port,
const std::string& database_name,
const std::string& user,
const std::string& password,
const std::string& special_tag) {
std::shared_ptr<ConnectPoolOperation> ret;
{
std::unique_lock<std::mutex> lock(shutdown_mutex_);
// Assigning here to read from pool safely
ret = std::make_shared<ConnectPoolOperation>(
getSelfWeakPointer(),
mysql_client_,
ConnectionKey(
host,
port,
database_name,
user,
password,
special_tag,
poolPerMysqlInstance()));
if (shutting_down_) {
LOG(ERROR)
<< "Attempt to start pool operation while pool is shutting down";
ret->cancel();
}
}
mysql_client_->addOperation(ret);
return ret;
}