Description
mongoc_client_pool_pop (mongoc_client_pool_t *pool)
|
{
|
mongoc_client_t *client;
|
|
|
ENTRY;
|
|
|
BSON_ASSERT (pool);
|
|
|
bson_mutex_lock (&pool->mutex);
|
|
|
again:
|
if (!(client = (mongoc_client_t *) _mongoc_queue_pop_head (&pool->queue))) { |
if (pool->size < pool->max_pool_size) { |
client = _mongoc_client_new_from_uri (pool->topology);
|
|
|
/* for tests */ |
mongoc_client_set_stream_initiator (
|
client,
|
pool->topology->scanner->initiator,
|
pool->topology->scanner->initiator_context);
|
|
|
client->error_api_version = pool->error_api_version;
|
_mongoc_client_set_apm_callbacks_private (
|
client, &pool->apm_callbacks, pool->apm_context);
|
The above code is missing in mongoc_client_pool_try_pop: https://github.com/mongodb/mongo-c-driver/blob/1.13.0/src/libmongoc/src/mongoc/mongoc-client-pool.c#L256-L268
It seems to have been missed by: https://github.com/mongodb/mongo-c-driver/commit/e0eed4a2d1d72d99213db049488703b79a379e94