go-sema
This package is called go-sema and it provides an easy to use interface in native Go to control the flow of data using semaphores. Think of a semaphore like a waiting room or a building with a capacity limit; when the capacity is reached, the line at the door beings, when one person leaves, another enters. That is a semaphore. This package provides this to your Go program.