MCPcopy Create free account
hub / github.com/acl-dev/acl / pools_dump

Method pools_dump

lib_acl_cpp/src/connpool/connect_manager.cpp:525–551  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

523}
524
525void connect_manager::pools_dump(size_t step, std::vector<connect_pool*>& out)
526{
527 size_t pools_size;
528 unsigned long id = get_id();
529
530 lock_.lock();
531
532 conns_pools& pools = get_pools_by_id(id);
533 pools_size = pools.pools.size();
534 if (pools_size == 0) {
535 lock_.unlock();
536 return;
537 }
538
539 if (step == 0 || step > pools_size) {
540 step = pools_size;
541 }
542
543 for (size_t i = 0; i < step; i++) {
544 connect_pool* pool = pools.pools[pools.check_next % pools_size];
545 pools.check_next++;
546 pool->refer();
547 out.push_back(pool);
548 }
549
550 lock_.unlock();
551}
552
553size_t connect_manager::pools_release(std::vector<connect_pool*>& pools)
554{

Callers

nothing calls this directly

Calls 6

referMethod · 0.80
get_idFunction · 0.50
lockMethod · 0.45
sizeMethod · 0.45
unlockMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected