code: func (kz *Kazoo) DeleteTopicSync(name string, timeout time.Duration) error {
  	err := kz.DeleteTopic(name)
  
  	if err != nil {
  		return err
  	}
  
  	topic := kz.Topic(name)
  
  	if exists, err := topic.Exists(); err != nil {
  		return err
  	} else if !exists {
  		return nil
  	}
  
  	changes, err := topic.Watch()
  
  	if err != nil {
  		return nil
  	}
  
  	if timeout > 0 {
  
  		timer := time.NewTimer(timeout)
  		defer timer.Stop()
  
  		for {
  			select {
  			case <-timer.C:
  				return ErrDeletionTimedOut
  
  			case c := <-changes:
  				if c.Type == zk.EventNodeDeleted {
  					return nil
  				}
  			}
  		}
  
  	} else {
  		for {
  			select {
  			case c := <-changes:
  				if c.Type == zk.EventNodeDeleted {
  					return nil
  				}
  			}
  		}
  	}
  }
docs: // DeleteTopicSync marks a kafka topic for deletion and waits until it is deleted
  // before returning.