@Override
                    public void beforeProcessMessage(final ClusterDistributionManager dm,
                        final DistributionMessage message) {
                      guardMessageProcessingHook(message, () -> {
                        try {
                          blackboard.signalGate(UPDATE_ENTERED_GATE);
                          blackboard.waitForGate(SUSPEND_UPDATE_GATE);
                        } catch (TimeoutException | InterruptedException e) {
                          errorCollector.addError(e);
                        }
                      });
                    }
It would be nice if this test didn't need to use the cache since the test's purpose is to test
that the {@link Connection} class can be closed while readers and writers hold locks on its
internal TLS {@link ByteBuffer}s

But this test does use the cache (region) because it enabled us to use existing cache messaging
and to use the DistributionMessageObserver (observer) hooks.

see also ClusterCommunicationsDUnitTest
geode-core/src/distributedTest/java/org/apache/geode/internal/tcp/ConnectionCloseSSLTLSDUnitTest.java