code: func (memif *Memif) GetQueueInterruptChan(queueID uint8) (ch <-chan struct{}, err error) {
  	if int(queueID) >= len(memif.queueIntCh) {
  		return nil, ErrQueueID
  	}
  	return memif.queueIntCh[queueID], nil
  }
docs: // GetQueueInterruptChan returns an empty-data channel which fires every time
  // there are data to read on a given queue.
  // It is only valid to call this function if memif is in the connected state.
  // Channel is automatically closed when the connection goes down (but after
  // the user provided callback OnDisconnect has executed).
  // Since there is only one interrupt signal sent for an entire burst of packets,
  // an interrupt handling routine should repeatedly call RxBurst() until
  // the function returns an empty slice of packets. This way it is ensured
  // that there are no packets left on the queue unread when the interrupt signal
  // is cleared.
  // The method is thread-safe.