code: func (s *SeesawSync) Register(node net.IP, id *SyncSessionID) error {
  	if id == nil {
  		return errors.New("id is nil")
  	}
  
  	// TODO(jsing): Reject if not master?
  
  	s.sync.sessionLock.Lock()
  	session := newSyncSession(node, s.sync.nextSessionID)
  	s.sync.nextSessionID++
  	s.sync.sessions[session.id] = session
  	s.sync.sessionLock.Unlock()
  
  	session.Lock()
  	session.expiryTime = time.Now().Add(sessionDeadtime)
  	session.Unlock()
  
  	*id = session.id
  
  	log.Infof("Synchronisation session %d registered by %v", *id, node)
  
  	return nil
  }
docs: // Register registers our Seesaw peer for synchronisation notifications.