code: function init(entry) {  // {{{2
  /**
   * @method constructor
   */
  
    if (entry.master) {
      throw O.log.error(entry, 'Duplicit `entry.master`', {master: entry.master._lid});
    }
  
    this.subject = entry;
    entry.master = this;
  
    var that = this;
  
    if (entry.subjectState === entry.SUBJECT_STATE.READY) {
      entry.subjectState = entry.SUBJECT_STATE.BUSY;
    }
  
    entry.shard.awaitSteadyMaster(function(err) {
      if (entry.master !== that) return;
  
      if (err) {
        if (entry.subjectState !== entry.SUBJECT_STATE.GONE) {
          throw O.log.error(entry, 'INVALID_STATE');
        }
        return;
      }
  
      if (entry.shard.masterState === entry.MASTER_STATE.WAITING) {
        delete entry.master;
        return entry.setMasterState(entry.MASTER_STATE.WAITING);
      }
  
      var req = {
        eid: entry.id
      };
      req.drev = entry.drev || true;
      req.srev = entry.srev || true;
  
      return O.link.send(entry.shard.master, 'track', req, that);
    });
  }
docs: Slave entry
  
  @property entry
  @type Object
   Public {{{1