@Override public void start() throws IOException { lock.readLock().lock(); try { delegate.start(); } finally { lock.readLock().unlock(); } }