@Override public double[] toArray(double[] a) { synchronized (mutex) { return c.toArray(a); } }
@Override public boolean isEmpty() { synchronized (mutex) { return c.isEmpty(); } }
@Override public boolean contains(double o) { synchronized (mutex) { return c.contains(o); } }
@Override public String toString() { synchronized (mutex) { return c.toString(); } }
@Override public int size() { synchronized (mutex) { return c.size(); } }
@Override public boolean forEach(TDoubleProcedure procedure) { synchronized (mutex) { return c.forEach(procedure); } }
@Override public void clear() { synchronized (mutex) { c.clear(); } }
@Override public boolean retainAll(double[] array) { synchronized (mutex) { return c.retainAll(array); } }
@Override public double getNoEntryValue() { return c.getNoEntryValue(); }
@Override public boolean removeAll(Collection<?> coll) { synchronized (mutex) { return c.removeAll(coll); } }
@Override public boolean retainAll(TDoubleCollection coll) { synchronized (mutex) { return c.retainAll(coll); } }
@Override public boolean addAll(Collection<? extends Double> coll) { synchronized (mutex) { return c.addAll(coll); } }
@Override public boolean containsAll(Collection<?> coll) { synchronized (mutex) { return c.containsAll(coll); } }
@Override public boolean remove(double o) { synchronized (mutex) { return c.remove(o); } }
@Override public boolean add(double e) { synchronized (mutex) { return c.add(e); } }
@Override public TDoubleIterator iterator() { return c.iterator(); // Must be manually synched by user! }