code: func (mp *TxPool) ProcessOrphans(acceptedTx *btcutil.Tx) []*TxDesc {
  	mp.mtx.Lock()
  	acceptedTxns := mp.processOrphans(acceptedTx)
  	mp.mtx.Unlock()
  
  	return acceptedTxns
  }
docs: // ProcessOrphans determines if there are any orphans which depend on the passed
  // transaction hash (it is possible that they are no longer orphans) and
  // potentially accepts them to the memory pool.  It repeats the process for the
  // newly accepted transactions (to detect further orphans which may no longer be
  // orphans) until there are no more.
  //
  // It returns a slice of transactions added to the mempool.  A nil slice means
  // no transactions were moved from the orphan pool to the mempool.
  //
  // This function is safe for concurrent access.