public void release(SslContext sslContext) {
        lock.lock();
        try {
            final CacheKey cacheKey = reverseCache.get(sslContext);
            final SslContextHolder contextHolder = cache.get(cacheKey);
            assert contextHolder != null : "sslContext not found in the cache: " + sslContext;

            if (contextHolder.release()) {
                final SslContextHolder removed = cache.remove(cacheKey);
                assert removed == contextHolder;
                reverseCache.remove(sslContext);
                contextHolder.destroy();
            }
        } finally {
            lock.unlock();
        }
    }
Returns an {@link SslContext} for the specified {@link SslContextMode} and {@link TlsKeyPair}.
Note that the returned {@link SslContext} should be released via
{@link ReferenceCountUtil#release(Object)} when it is no longer used.
core/src/main/java/com/linecorp/armeria/internal/common/SslContextFactory.java