public OperationTask(final BinaryOperation<S, U, R> op, final S in1, final U in2, final R out) {
   m_in1 = in1;
   m_in2 = in2;
   m_out = out;
   m_op = op.copy();
 }
 @Override
 public void run() {
   m_op.compute(m_in1, m_in2, m_out);
 }
 @Override
 public BinaryOperation<S, U, R> copy() {
   return new IterateBinaryOperation<T, V, O, S, U, R>(
       m_op.copy(), m_in0Intervals, m_in1Intervals, m_outIntervals, m_service);
 }