code: func (c *Ctrie) rdcssComplete(abort bool) *iNode {
  	for {
  		r := (*iNode)(atomic.LoadPointer((*unsafe.Pointer)(unsafe.Pointer(&c.root))))
  		if r.rdcss == nil {
  			return r
  		}
  
  		var (
  			desc = r.rdcss
  			ov   = desc.old
  			exp  = desc.expected
  			nv   = desc.nv
  		)
  
  		if abort {
  			if c.casRoot(r, ov) {
  				return ov
  			}
  			continue
  		}
  
  		oldeMain := gcasRead(ov, c)
  		if oldeMain == exp {
  			// Commit the RDCSS.
  			if c.casRoot(r, nv) {
  				atomic.StoreInt32(&desc.committed, 1)
  				return nv
  			}
  			continue
  		}
  		if c.casRoot(r, ov) {
  			return ov
  		}
  		continue
  	}
  }
docs: // rdcssComplete commits the RDCSS operation.