docs: public void unregisterCondition(IWatchedCondition condition) {
          synchronized (conditions) {
              Set<IObjectReference<IWatchedCondition>> copiedRefs=new HashSet<IObjectReference<IWatchedCondition>>(this.conditions);
  
              for (Iterator<IObjectReference<IWatchedCondition>> iterator = copiedRefs.iterator(); iterator.hasNext(); ) {
                  IObjectReference<IWatchedCondition> objRef =  iterator.next();
                  IWatchedCondition cond = objRef.get();
                  if (cond == null || cond.equals(condition)) {
                      this.conditions.remove(objRef);
                  }
              }
          }
      }