| 198 | } |
| 199 | |
| 200 | bool MemoryPoolManager::resizePools(PoolId src, PoolId dest, size_t bytes) { |
| 201 | auto& srcPool = getPoolById(src); |
| 202 | auto& destPool = getPoolById(dest); |
| 203 | |
| 204 | std::unique_lock l(lock_); |
| 205 | if (srcPool.getPoolSize() < bytes) { |
| 206 | return false; |
| 207 | } |
| 208 | |
| 209 | // move the memory. |
| 210 | srcPool.resize(srcPool.getPoolSize() - bytes); |
| 211 | destPool.resize(destPool.getPoolSize() + bytes); |
| 212 | return true; |
| 213 | } |
| 214 | |
| 215 | bool MemoryPoolManager::shrinkPool(PoolId pid, size_t bytes) { |
| 216 | auto& pool = getPoolById(pid); |