* Lock which protects toAdd, toRemove, and closed.
private final ReentrantLock lock = new ReentrantLock();
There're two places, NotificationHandler.handle() and kick(), where access to closed is without holding lock.
FsDatasetImpl#createTemporary sometimes holds the FSDatasetImpl lock for a very long time
Prevent ConcurrentModificationException while closing domain sockets during shutdown of DomainSocketWatcher thread.