code: private void completeCall(ClientResponseImpl response) {
          // if we're keeping track, calculate result size
          if (m_perCallStats.samplingProcedure()) {
              m_perCallStats.setResultSize(response.getResults());
          }
          m_statsCollector.endProcedure(response.getStatus() == ClientResponse.USER_ABORT,
                                        (response.getStatus() != ClientResponse.USER_ABORT) &&
                                        (response.getStatus() != ClientResponse.SUCCESS),
                                        m_perCallStats);
          // allow the GC to collect per-call stats if this proc isn't called for a while
          m_perCallStats = null;
  
          // send the response to the caller
          // must be done as IRM to CI mailbox for backpressure accounting
          response.setClientHandle(m_clientHandle);
          InitiateResponseMessage irm = InitiateResponseMessage.messageForNTProcResponse(m_ciHandle,
                                                                                         m_ccxn.connectionId(),
                                                                                         response);
          m_mailbox.deliver(irm);
  
          m_ntProcService.handleNTProcEnd(ProcedureRunnerNT.this);
      }
docs: Send a response back to the proc caller. Refactored out of coreCall for both
  regular and exceptional paths.