code: public static <T1, T2, T3> TriPredicate<T1, T2, T3> monitor(TriPredicate<T1, T2, T3> predicate, AtomicLong calls) {
          return new TernaryMonitoringPredicate<T1, T2, T3>(predicate, calls);
      }
docs: Monitors calls to a ternary predicate.
  
  @param <T1> the predicate first parameter type
  @param <T2> the predicate second parameter type
  @param <T3> the predicate third parameter type
  @param predicate the predicate that will be monitored
  @param calls a value holder accumulating calls
  @return the proxied predicate