public boolean offer(Runnable o) {
            if (this.parent == null)
                return super.offer(o);

            if (this.parent.getPoolSize() == this.parent.getMaximumPoolSize())
                return super.offer(o);

            if (this.parent.getActiveCount() < this.parent.getPoolSize())
                return super.offer(o);

            if (this.parent.getPoolSize() < this.parent.getMaximumPoolSize())
                return false;

            return super.offer(o);
        }