nl: it is not possible to remove a watcher ... so we just set the tracker in destroyed mode which will simply ignore all subsequent event . concode_field_sep Watcher _treeWacher concode_elem_sep boolean _destroyed concode_elem_sep Object _lock concode_elem_sep ZKDataReader<T> _zkDataReader concode_elem_sep long _lastZkTxId concode_elem_sep int _depth concode_elem_sep Clock clock concode_elem_sep String MODULE concode_elem_sep IZKClient _zk concode_elem_sep String _root concode_elem_sep Set<NodeEventsListener<T>> _eventsListeners concode_elem_sep int _rootDepth concode_elem_sep Set<ErrorListener> _errorListeners concode_elem_sep Logger log concode_elem_sep Map<String,TrackedNode<T>> _tree concode_field_sep void process concode_elem_sep int getDepth concode_elem_sep void raiseEvents concode_elem_sep Map<String,TrackedNode<T>> handleNodeDeleted concode_elem_sep boolean handleEvent concode_elem_sep String logString concode_elem_sep int computeAbsoluteDepth concode_elem_sep long waitForZkTxId concode_elem_sep void registerListener concode_elem_sep Map<String,TrackedNode<T>> trackNode concode_elem_sep Map<String,TrackedNode<T>> handleNodeChildrenChanged concode_elem_sep Map<String,TrackedNode<T>> getTree concode_elem_sep Map<String,TrackedNode<T>> handleNodeDataChanged concode_elem_sep long getLastZkTxId concode_elem_sep int computeDepth concode_elem_sep void raiseError concode_elem_sep void registerErrorListener concode_elem_sep String getRoot concode_elem_sep IZKClient getZKCient concode_elem_sep void track concode_elem_sep void track
code: void function ( ) { synchronized ( _lock ) { _destroyed = true ; } }