package com.psddev.cms.rtc; import com.google.common.collect.ImmutableMap; import java.util.UUID; import java.util.concurrent.ConcurrentMap; class RtcAsyncContextPingRunnable implements Runnable { private final ConcurrentMap<UUID, RtcAsyncContext> contexts; private volatile boolean stopped; public RtcAsyncContextPingRunnable(ConcurrentMap<UUID, RtcAsyncContext> contexts) { this.contexts = contexts; } public void stop() { stopped = true; } @Override public void run() { for (RtcAsyncContext context : contexts.values()) { if (stopped) { return; } context.writeEvent(ImmutableMap.of("_ping", true)); } } }