package com.l7tech.server.util;

import java.util.concurrent.atomic.AtomicBoolean;

public abstract class AbstractCloseable {
   private final AtomicBoolean a = new AtomicBoolean(false);

   public final boolean isClosed() {
      return this.a.get();
   }

   private boolean a() {
      return this.a.getAndSet(true);
   }

   protected abstract void doClose();

   protected void close() {
      if (!this.a()) {
         this.doClose();
      }
   }
}
