code: func (d *Delay) SetExpiration(key string, now time.Time, delay time.Duration) {
  	d.lock.Lock()
  	defer d.lock.Unlock()
  
  	d.delay[key] = now.Add(delay)
  	time.AfterFunc(delay, func() {
  		d.lock.Lock()
  		delete(d.delay, key)
  		d.lock.Unlock()
  	})
  }
docs: // SetExpiration sets the expiration time for the lock delay to the given
  // delay from the given now time.