code: func New(limit int) Semaphore {
  	if limit <= 0 {
  		panic("semaphore limit must be greater than 0")
  	}
  	broadcastCh := make(chan struct{})
  	return &semaphore{
  		state:       uint64(limit) << 32,
  		broadcastCh: broadcastCh,
  	}
  }
docs: // New initializes a new instance of the Semaphore, specifying the maximum number of concurrent entries.