diff --git a/include/haproxy/pool.h b/include/haproxy/pool.h
index 6e67b00..d9dc527 100644
--- a/include/haproxy/pool.h
+++ b/include/haproxy/pool.h
@@ -74,6 +74,7 @@
 
 void pool_evict_from_local_cache(struct pool_head *pool);
 void pool_evict_from_local_caches();
+void pool_put_to_cache(struct pool_head *pool, void *ptr);
 
 /* returns true if the pool is considered to have too many free objects */
 static inline int pool_is_crowded(const struct pool_head *pool)
@@ -248,30 +249,6 @@
 	return item;
 }
 
-/* Frees an object to the local cache, possibly pushing oldest objects to the
- * shared cache, which itself may decide to release some of them to the OS.
- * While it is unspecified what the object becomes past this point, it is
- * guaranteed to be released from the users' perpective.
- */
-static inline void pool_put_to_cache(struct pool_head *pool, void *ptr)
-{
-	struct pool_cache_item *item = (struct pool_cache_item *)ptr;
-	struct pool_cache_head *ph = &pool->cache[tid];
-
-	LIST_ADD(&ph->list, &item->by_pool);
-	LIST_ADD(&ti->pool_lru_head, &item->by_lru);
-	ph->count++;
-	pool_cache_count++;
-	pool_cache_bytes += pool->size;
-
-	if (unlikely(pool_cache_bytes > CONFIG_HAP_POOL_CACHE_SIZE * 3 / 4 &&
-	             ph->count >= 16 + pool_cache_count / 8))
-		pool_evict_from_local_cache(pool);
-
-	if (unlikely(pool_cache_bytes > CONFIG_HAP_POOL_CACHE_SIZE))
-		pool_evict_from_local_caches();
-}
-
 
 #endif /* CONFIG_HAP_POOLS */
 
diff --git a/src/pool.c b/src/pool.c
index bc568d2..88c579b 100644
--- a/src/pool.c
+++ b/src/pool.c
@@ -234,6 +234,30 @@
 	} while (pool_cache_bytes > CONFIG_HAP_POOL_CACHE_SIZE * 7 / 8);
 }
 
+/* Frees an object to the local cache, possibly pushing oldest objects to the
+ * shared cache, which itself may decide to release some of them to the OS.
+ * While it is unspecified what the object becomes past this point, it is
+ * guaranteed to be released from the users' perpective.
+ */
+void pool_put_to_cache(struct pool_head *pool, void *ptr)
+{
+	struct pool_cache_item *item = (struct pool_cache_item *)ptr;
+	struct pool_cache_head *ph = &pool->cache[tid];
+
+	LIST_ADD(&ph->list, &item->by_pool);
+	LIST_ADD(&ti->pool_lru_head, &item->by_lru);
+	ph->count++;
+	pool_cache_count++;
+	pool_cache_bytes += pool->size;
+
+	if (unlikely(pool_cache_bytes > CONFIG_HAP_POOL_CACHE_SIZE * 3 / 4)) {
+		if (ph->count >= 16 + pool_cache_count / 8)
+			pool_evict_from_local_cache(pool);
+		if (pool_cache_bytes > CONFIG_HAP_POOL_CACHE_SIZE)
+			pool_evict_from_local_caches();
+	}
+}
+
 #if defined(CONFIG_HAP_NO_GLOBAL_POOLS)
 
 /* legacy stuff */
