private function clearItems(AdapterInterface $fallbackPool, array $prefixes)
    {
        $cleared = $fallbackPool->clearByPrefixes($prefixes);
        $keys = AdapterUtil::getPropertyValue($this, 'keys') ?: [];
        $values = AdapterUtil::getPropertyValue($this, 'values') ?: [];
        $warmValues = [];

        foreach ($keys as $key => $valuePrefix) {
            foreach ($prefixes as $prefix) {
                if ('' === $prefix || 0 !== strpos($key, $prefix)) {
                    $warmValues[$key] = $values[$valuePrefix];
                }
            }
        }

        if (\count($values) !== \count($warmValues)) {
            $this->warmUp($warmValues);
        }

        return $cleared;
    }