hanfish's picture
111
215df2f verified
raw
history blame contribute delete
No virus
280 Bytes
package middlewares
import (
"github.com/gin-gonic/gin"
)
func MaxAllowed(n int) gin.HandlerFunc {
sem := make(chan struct{}, n)
acquire := func() { sem <- struct{}{} }
release := func() { <-sem }
return func(c *gin.Context) {
acquire()
defer release()
c.Next()
}
}